我有一个UITextView
,可以进行缩放和旋转。用户可以编辑其文本,也可以更改文本属性,例如文本颜色、背景颜色、字体等。
现在有个有趣的问题,如果我应用一个缩放变换来缩小视图(例如0.5),那么其中的文本就会被裁剪。如果设置view.transform
或view.layer.transform
,行为是相同的。这是由于内部的UITextContainerView
被缩放了两次,例如如果文本视图被缩放了0.5倍,则UITextContainerView
的大小只有缩小后的文本视图的一半。而UITextContainerView
的frame
和bounds
具有相同的值,即缩小后的文本视图的大小,看起来是正确的。UITextContainerView
的变换及其图层的变换都是恒等的。
手动更改UITextContainerView
的frame
和bounds
会自动重置,因此无法解决该问题。而clipsToBounds
和masksToBounds
也无法修复裁剪问题。
这在模拟器和真实设备上的iOS 11.4中发生。如果我仅删除新输入属性的设置,则UITextContainerView
将表现正确,文本不会被裁剪。
这是导致问题的原因,如果我将其删除,则文本不再被裁剪:
textView.typingAttributes = updatedTypingAttributes
有人遇到这个bug吗?我该如何解决?