UITextView contentOffset无法在iOS 7上运行

时间:2013-10-11 19:02:43

标签: ios7 uitextview

我的应用中有一个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的变化是什么?

2 个答案:

答案 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];