ios – 将转换应用于UITextView – 防止内容大小调整

ios – 将转换应用于UITextView – 防止内容大小调整,第1张

概述当我将一个旋转变换应用到一个UITextView,然后点击里面开始编辑,看起来内容大小自动被更广泛.内容视图的新宽度是旋转视图的边框的宽度.例如,给定宽度500和高度400的文本框,并旋转30度,新的内容宽度将为: (500 * cos(30)) + (400 * sin(30)) = 633 或图形: 有趣的是,如果您已经在编辑文本视图,然后应用该转换,那么似乎没有修改内容大小.所以看起来,在文 当我将一个旋转变换应用到一个UITextVIEw,然后点击里面开始编辑,看起来内容大小自动被更广泛.内容视图的新宽度是旋转视图的边框的宽度.例如,给定宽度500和高度400的文本框,并旋转30度,新的内容宽度将为:
(500 * cos(30)) + (400 * sin(30)) = 633

或图形:

有趣的是,如果您已经在编辑文本视图,然后应用该转换,那么似乎没有修改内容大小.所以看起来,在文本编辑开始的某个时候,文本视图查看其帧属性,并根据帧宽调整内容大小.我想象的解决方案是告诉它使用bounds属性,但是我不知道该怎么做,因为我不知道文本视图在哪里决定修改内容大小.

我有谷歌搜索,但似乎没有找到任何使用转换的UITextVIEws的引用.有人有什么想法吗?

编辑(来自测试项目的按钮 *** 作):

- (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,100,100)];UIVIEw *myRotateVIEw = [[UIVIEw alloc] init];[myRotateVIEw setFrame:CGRectMake(20,20,100)];[myRotateVIEw setBackgroundcolor:[UIcolor clearcolor]];[myRotateVIEw addSubvIEw:myTextVIEw];myRotateVIEw.transform = CGAffinetransformMakeRotation(0.8);[[self vIEw] addSubvIEw:myRotateVIEw];
总结

以上是内存溢出为你收集整理的ios – 将转换应用于UITextView – 防止内容大小调整全部内容,希望文章能够帮你解决ios – 将转换应用于UITextView – 防止内容大小调整所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1110837.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存