使用scrollRangeToVisible()时,UITextView始终从头开始滚动

时间:2015-04-29 09:23:05

标签: ios uiscrollview uitextview

我正在调试记录我的操作的UITextView

e.g。如果我按下屏幕上的一个特殊按钮,这个UITextView将显示我刚刚按下的按钮。当我按下更多按钮时会记录更多,所以我可以轻松滚动UITextView以查看我过去的操作。

因为UITextView本身不会随着文本的增加而滚动,所以我会尝试在记录某些内容时滚动到最后一行。 我尝试使用下面的 scrollRangeToVisible()方法

history.scrollRangeToVisible(NSMakeRange(count(history.text!) - 1, 1))

此处的历史记录是UITextView出口。

问题是,此方法始终使UITextView从开头滚动到指定的NSRange。更具体地说,它会将视图重置为文本的开头,然后向下滚动到NSRange所在的位置。我希望它直接scroll

有人可以解决这个问题吗?非常感谢。

1 个答案:

答案 0 :(得分:6)

此链接(what to use instead of scrollRangeToVisible in iOS7 or TextKit)建议关闭滚动,进行更改然后将其打开。

history.scrollEnabled = NO;
[history scrollRangeToVisible:NSMakeRange(history.text.length - 1,0)];
history.scrollEnabled = YES;

修改

讨论后使用:

解决
history.layoutManager.allowsNonContiguousLayout = NO; 

在此处看到:UITextView setText should not jump to top in ios8