我正在调试记录我的操作的 UITextView
。
例如如果我按下屏幕上的一个特殊按钮,这个 UITextView
将显示我刚刚按下的按钮。当我按下更多按钮时,它会记录更多信息,因此我可以轻松滚动 UITextView
以查看我过去的操作。
因为 UITextView
本身不会随着文本的增加而滚动,所以当有东西登录时,我尝试让它滚动到最后一行。
我尝试使用下面的 scrollRangeToVisible() 方法
history.scrollRangeToVisible(NSMakeRange(count(history.text!) - 1, 1))
这里的历史是一个
UITextView
导出。问题是,这个方法总是让
UITextView
从头滚动到指定的 NSRange
。更具体地说,它将 View 重置为文本的开头,然后向下滚动到 NSRange
所在的位置。我要它直接把 scroll
下来,有人可以解决这个问题吗?非常感谢。
最佳答案
此链接 ( 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
关于ios - 使用 scrollRangeToVisible() 时,UITextView 总是从头开始滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29939448/