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

Zhu*_*gqi 4 uiscrollview uitextview ios

我正在调试一个UITextView记录我操作的东西.

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

因为UITextView本身不会随着文本的增加而滚动,所以当尝试登录时,我会尝试滚动到最后一行.我尝试使用下面的scrollRangeToVisible()方法

history.scrollRangeToVisible(NSMakeRange(count(history.text!) - 1, 1))
Run Code Online (Sandbox Code Playgroud)

历史是一个UITextView出路.

问题是,这种方法总是使得UITextView从头开始滚动到指定NSRange.更具体地说,它会将视图重置为文本的开头,然后向下滚动到任何NSRange位置.我希望它scroll直接下来,

有人能解决这个问题吗?非常感谢.

Ror*_*nel 7

此链接(在iOS7或TextKit中使用什么而不是scrollRangeToVisible)建议关闭滚动,进行更改然后将其打开.

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

编辑

讨论后解决使用:

history.layoutManager.allowsNonContiguousLayout = NO; 
Run Code Online (Sandbox Code Playgroud)

在这里看到:UITextView setText不应该在ios8中跳转到顶部