将变换应用于 UITextView - 防止内容调整大小

2024-01-08

当我将旋转变换应用于UITextView然后点击里面开始编辑,看起来内容尺寸自动变宽了。内容视图的新宽度是旋转视图的边界框的宽度。例如,给定一个宽度为 500、高度为 400 的文本框,并旋转 30 度,新的内容宽度将为:

(500 * cos(30)) + (400 * sin(30)) = 633

或者以图形方式:

有趣的是,如果您已经在编辑文本视图,然后应用转换,那么内容大小似乎不会发生任何修改。因此,似乎在文本编辑开始时,文本视图会查看其frame属性并根据框架宽度调整内容大小。我想解决这个问题的方法是告诉它使用bounds属性,但是我不知道在哪里执行此操作,因为我不确定文本视图到底在哪里决定修改内容大小。

我已经用谷歌搜索过,但似乎找不到任何关于使用转换后的 UITextView 的参考。有人对此有什么想法吗?

编辑(测试项目中的按钮操作):

- (IBAction)rotateButtonTapped:(id)sender {
    if (CGAffineTransformIsIdentity(self.textView.transform)) {
        self.textView.transform = CGAffineTransformMakeRotation(30.0 * M_PI / 180.0);
    }
    else {
        self.textView.transform = CGAffineTransformIdentity;
    }

    NSLog(@"contentsize: %.0f, %.0f", textView.contentSize.width, textView.contentSize.height);
}

我也被这个问题困扰了。

我发现的唯一解决方案是创建 UIView 的实例并将 UITextView 添加为子视图。然后你可以旋转 UIView 的实例,UITextView 就可以正常工作了。

UITextView *myTextView = [[UITextView alloc] init];
[myTextView setFrame:CGRectMake(0, 0, 100, 100)];

UIView *myRotateView = [[UIView alloc] init];
[myRotateView setFrame:CGRectMake(20, 20, 100, 100)];
[myRotateView setBackgroundColor:[UIColor clearColor]];
[myRotateView addSubview:myTextView];

myRotateView.transform = CGAffineTransformMakeRotation(0.8);
[[self view] addSubview:myRotateView];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将变换应用于 UITextView - 防止内容调整大小 的相关文章

  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 如何让 Chrome Cast 在 iOS 后台运行?

    我有一个简单的问题 当您进入 iPhone 的主屏幕并且不退出应用程序时 chrome Cast 设备会停止在屏幕上播放视频 当应用程序在后台运行时 我如何才能保持播放状态 如果您有一个视频应用程序并且它在投射设备中运行 您可能需要以下行为
  • 使用自动布局时 UIScrollview 的中心内容

    我在项目中使用自动布局 并且有一个滚动视图 其中有一个居中的按钮 我已经让滚动视图滚动 但不占据整个屏幕 我尝试按照此处的教程进行操作 https developer apple com library ios technotes tn21
  • 有没有办法从 Instruments (Xcode) 的命令行实例中删除授权提示?

    我目前正在通过 bash 脚本使用 Instruments 来启动命令行界面以启动自动化插件的运行 在 4 2 中 这工作得很好 但是随着升级到 Xcode 4 3 我现在被提示需要授权用户 分析其他进程 即使授予了正确的凭据 也不会真正对
  • SpriteKit - 对多个 SKNode 上运行的多个 SKAction 进行排序

    我非常了解 SKAction API 但在多个节点上运行顺序代码时我无法获得良好的代码 这是示例代码 简化 import SpriteKit class GameScene SKScene weak var node1 SKNode wea
  • Draggable Boxview 不更新 Xamarin

    我的第一个问题是框视图生成在左上角 而不是我指定的设计网格第 10 行和网格第 3 列 第二个问题在于可拖动视图 在代码本地可拖动视图的第一部分中 它正确地调用了触摸事件 但也许它没有在GUI中更新
  • 定位精度定义 - iOS

    iOS 上返回的 准确性 或 不确定性 的统计意图是什么 即使是近似值 例如 Android 文档对其返回的精度数字进行了解释 从这个意义上讲 它大约是一个标准差 我们将准确度定义为 68 置信度的半径 换句话说 如果 您以该位置的纬度和经
  • iOS - 在 UITabBar 上方获取所需的阴影

    我试图让我的标签栏阴影看起来像这张图片中看到的那样 这样做的最佳方法是什么 我正在使用 Objective C Thanks 您可以使用以下代码为任何 UI 对象提供阴影 tabBar layer shadowOffset CGSize w
  • UIAlertAction 处理程序在延迟后运行

    我正在尝试将 UIAlertViews 更改为 UIAlertControllers 我为此设置了这个操作 UIAlertAction undoStopAction UIAlertAction actionWithTitle Undo St
  • 如何在 iOS 上更改设备音量 - 而不是音乐音量

    我想更改 iOS iPhone 上的设备音量 我知道我可以使用以下几行更改音乐库的音量 implement at first MediaPlayer framework MPMusicPlayerController musicPlayer
  • 是否可以对 UILabel 的文本颜色变化进行动画处理? [复制]

    这个问题在这里已经有答案了 UIView animateWithDuration 5 animations myLabel textColor UIColor redColor 标签文本颜色立即改变 Try this UIView tran
  • iOS5 和 Facebook API

    我想将我的应用程序与 Facebook 集成并从 github 下载 Facebook ios sdk 但是 该 sdk 适用于 Xcode 4 0 代码库 我正在使用 Xcode 4 2 for iOS 5 beta 5 应用程序 是否有
  • UIView 周围的虚线边框

    如何在周围添加虚线边框UIView 像这样的东西 如果您喜欢子层 还有另一种方法 在您的自定义视图的 init 中 输入以下内容 border 是 ivar border CAShapeLayer layer border strokeCo
  • Xcode 服务器 ibtool 构建失败

    我一直在研究使用 Xcode Server 进行 CI 我已经解决了一些问题 但现在有一个问题困扰着我 构建似乎工作正常 但在测试阶段挂起 并在日志底部生成以下内容 2015 11 25 14 44 45 650 xcodebuild 58
  • 使用 UIWebView 显示 PDF 不起作用

    因此 我意识到有关使用 UIWebView 在应用程序 在 iPad 上 中显示 PDF 存在很多问题 我已经审查了我能找到的所有内容 但似乎找不到任何满意的东西 我想做的事情非常基本 所以我真的不知道为什么它不起作用 我需要做的就是在 U
  • 在后台继续下载

    我正在创建一个应用程序 其中我从服务器下载一些数据 在后台运行时 我希望连接继续运行 以便可以下载数据 我知道有方法应用程序委托 void applicationDidEnterBackground UIApplication applic
  • iOS Twitter NSURLErrorDomain 代码=-1012

    我正在尝试通过在我的应用程序中注册 Twitter 来获取用户的联系方式 我发现this https github com malcommac DMTwitterOAuthgithub上的项目看起来非常好 我只遇到一个问题 如果我使用来自
  • 如何在没有 MFMessageComposeViewController 的情况下发送和接收短信?

    我想发送和接收短信而不显示MFMessageViewController从我的申请中 有人能告诉我这怎么可能吗 不可能 除非您使用第 3 方 api 发送 接收短信
  • iOS:应用程序在安装应用程序时不会征求用户的许可。每次都获取 kCLAuthorizationStatusNotDetermined - Objective-c 和 Swift

    我正在尝试在我的 iOS 应用程序中获取用户位置 我首先在我的项目中包含了核心定位框架 然后单击按钮 我将调用核心位置 api 如下所示 当我尝试在设备中安装它时 核心位置从不询问用户许可 当我尝试获取单击按钮时的位置时 我得到 kCLAu
  • 如何删除以前的 ViewController

    我是一名学生 对编程还很陌生 我正在尝试在业余时间学习 Objective C Swift 我使用 spriteKit 和 swift 制作了一个游戏 有多个菜单 场景 我正在尝试从一个视图控制器转换到另一个视图控制器 为此 我使用了以下代

随机推荐

  • 如何在 ASP.NET MVC 中的多个视图上正确填充控制器中 ViewData 的下拉列表

    我已经说过这一点大约一百万次了 但我对 ASP Net MVC 以及一般的 ASP NET 仍然是新手 所以很抱歉 如果这有点明显 好的 我有一个控制器将数据发送到两个视图 一个视图仅列出数据库中的数据 而另一个视图允许您分别编辑和添加记录
  • MySQL中如何设计类别和子类别?

    我有一个类别列表以及与每个类别关联的子类别数量 假设类别表称为 Cat 那么其中有热类别和冷类别 我有另一个名为 subcats 的表 然后我有以下内容 Cat ID Name 1 Hot 2 Cold SubCats SubCatID C
  • 计算用户给出的字符串中的唯一字符

    我必须编写一个程序来计算用户给出的字符串中的唯一字符 例如 abc 返回3 aabbccd 返回4 我不允许使用高级Java类 如Map Set等 我只能使用数组 字符串 for循环 while循环 if语句 我正在尝试使用嵌套循环 但对如
  • MQTT 客户端订阅 PostgreSQL 数据库更改

    我有一个定期更新的 PostgreSQL 数据库 并且想要将最新更改发布到 mosquitto 代理 执行此方法最优雅的方法是什么 好吧 这个想法很有趣 我正在使用 PostgreSQL 9 5 如果我在控制台中输入 CREATE LANG
  • 如何删除 NodeReference 字段中的节点 ID [nid:n]

    这是此链接的同一问题 删除节点引用自动完成中的 nid n https stackoverflow com questions 1515722 removing nidn in nodereference autocomplete 根据第一
  • 一个变量仅由一个线程读取,由另一个线程读取和写入,是否需要同步?

    Motive 我刚刚学习多线程的基础知识 还没有完成它们 但我想在学习之旅的早期提出一个问题 以引导我了解与我正在从事的项目最相关的主题 Main A 如果一个进程有两个线程 一个编辑一组变量 另一个只读取所述变量 从不编辑它们的值 那么我
  • azure 删除从我的应用程序服务返回的 Access-Control-Allow-Origin 标头

    我有两个服务在 Azure 上运行 a 网络服务 角度应用程序 expressjs an 应用服务 ASPNET核心应用程序 All the 网络服务所做的是查询应用服务对于以下端点 my app service azurewebsites
  • 将初始音量设置为手机铃声音量

    我试图做到这一点 以便当用户打开应用程序时 它将音乐的音量设置为手机铃声的音量 到目前为止 这是我的代码 但我不太确定 setVolume float float 上的参数是什么 android 文档没有很好地解释它 我的代码在这里做错了什
  • texture2D().r 和texture2D().a 是什么意思?

    我在用OpenGL ES在Android编程中 当我在着色器中将YUV NV21 转换为RGB时 例如 vec3 yuv vec3 texture2D u TextureY vTextureCoord r 0 0625 texture2D
  • 我们如何使用 ucrop 库自定义裁剪图像活动

    我正在使用一个 implementation com github yalantis ucrop 2 2 2 用于裁剪目的的库 谁能告诉我们如何编辑上面的设计 我们可以为此进行定制设计 UI 吗 因为上面的UI是从图库中选择图片时默认的 l
  • IE11 编辑值时将光标移动到输入开头

    我在一个项目上遇到了一个非常奇怪的问题 长话短说 我有记录利率的输入字段 因此在模糊时附加 并在焦点时删除 它在除 IE11 之外的所有浏览器上都能正常工作 由于某种原因 它将光标移动到输入的开头 这对于人们快速浏览并输入值来说很烦人 这是
  • Nodejs 中哈希字符串的网络安全编码

    我正在 Nodejs 中创建一个重定向器 我有一些价值观 比如 用户id 超级用户id 我想对这些进行哈希处理 以防止用户检索 url 并伪造其他人的 url 并进行 base64 编码以最小化创建的 url 的长度 http myurl
  • Soundcloud API 未通过 Python 返回播放列表中的所有曲目

    我最近开始使用 Soundcloud API 开发一个简单的应用程序 用于保存播放列表中的数据 然而 在我看来 并非播放列表中的所有曲目都会被返回 我正在使用以下代码 import soundcloud shelve time client
  • 如何获取折线图中的所有json值

    我有很多 Json 值 我将使用它们创建一个折线图 但它在图表中只显示一个值 我是 javascript 的新手 有一个想法在图表中绘制所有值 请任何人给出这个问题的 jsfiddle 示例 HTML代码 div class chart S
  • 如何从两个数组列表中删除公共值

    我们如何从两个 ArrayList 中删除公共值 假设我有两个 Arraylist 如下所示 ArrayList1 1 2 3 4 ArrayList1 2 3 4 6 7 我希望得到的结果是 ArrayListFinal 1 6 7 我该
  • 运行 Rails 代码/初始化程序但不通过 Rake

    我的应用程序不断遇到重复出现的问题 基本上 我有一些代码希望它在第一次启动服务器时运行 以检查某些内容是否已定义 例如计划 数据库中的特定列 文件的存在等 然后采取相应的行动 但是 我绝对不希望在启动 Rake 任务 或执行 生成 等操作
  • backgroundTaskHost.exe 退出并显示代码 1 (0x1)

    我正在创建一个 Windows 应用商店应用程序 该应用程序具有用于后台任务的 Windows 运行时组件 该解决方案在 Visual Studio 中构建时没有任何问题 但当触发后台任务时 它总是失败并显示消息 程序 4204 backg
  • 如何使用 Dapper.Contrib 正确“单一化”表名?

    我有一个 Net Core 3 1 控制台应用程序 在SQL Server数据库中 我有单数名称的表 与我的POCO类相同 这方便匹配和维护 对于我想使用的插入 更新和删除操作Dapper Contrib图书馆 但是 当我运行 Insert
  • Qsort 在 C++ 中不适用于哪些类型?

    std sort通过使用交换元素std swap 它又使用复制构造函数和赋值运算符 保证您在交换值时获得正确的语义 qsort通过简单地交换元素的底层位来交换元素 忽略与要交换的类型相关的任何语义 虽然qsort尽管不了解您正在排序的类型的
  • 将变换应用于 UITextView - 防止内容调整大小

    当我将旋转变换应用于UITextView然后点击里面开始编辑 看起来内容尺寸自动变宽了 内容视图的新宽度是旋转视图的边界框的宽度 例如 给定一个宽度为 500 高度为 400 的文本框 并旋转 30 度 新的内容宽度将为 500 cos 3