我的应用中有一个UITextView。每次添加新字符串时,我都需要动态更改内容偏移量。代码bellow在iOS 6及更早版本上运行良好,但在iOS 7上运行不正常。
TextViewText.text = [TextViewText.text stringByReplacingCharactersInRange:RecentWordRange withString:string];
newStringLen = string.length;
[TextViewText setSelectedRange: NSMakeRange(RecentWordRange.location+string.length, 0)];
[TextViewText setContentOffset: CGPointMake(0,0) animated:NO];
[TextViewText setContentOffset:contentOffset animated:YES];
IOS7对setContentOffset的变化是什么?
答案 0 :(得分:2)
将UITextView textContainerInset
用于insets
,并使用(UIEdgeInsets)contentInset
获取(CGPoint)contentOffset
。
不知道为什么有人认为这是处理UITextView抵消的最佳方式,但这对我有用。
另请注意,除非存在左右偏移,否则有一个奇怪的错误,它不会接受textView上的插入内容。因此,请确保左/右UIEdgeInsets大于1.
答案 1 :(得分:0)
最近我在iOS 8中解决了类似的问题。我在文本视图中替换了文本并且它跳了起来。使用UITextRange相关方法有帮助。
UITextRange *RecentWordRange = TextViewText.selectedTextRange;
[TextViewText replaceRange:RecentWordRange withText:string];