相关疑难解决方法(0)

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

当我将旋转变换应用于a UITextView然后单击内部以开始编辑时,似乎内容大小自动变宽.内容视图的新宽度是旋转视图的边界框的宽度.例如,给定宽度为500且高度为400的文本框,并旋转30度,新的内容宽度将为:

(500 * cos(30)) + (400 * sin(30)) = 633
Run Code Online (Sandbox Code Playgroud)

或图形化:

在此输入图像描述

有趣的是,如果您已经在编辑文本视图,然后应用转换,那么似乎不会对内容大小进行任何修改.所以看起来在文本编辑开始的某个时候,文本视图会查看其frame属性并根据帧宽调整内容大小.我想这个解决方案是告诉它使用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);
}
Run Code Online (Sandbox Code Playgroud)

transform rotation uitextview cgaffinetransform ios

19
推荐指数
1
解决办法
4838
查看次数

标签 统计

cgaffinetransform ×1

ios ×1

rotation ×1

transform ×1

uitextview ×1