UITextView使用scrollRangeToVisible()方法时总是从开头滚动。

4
我正在调试一个记录我的操作的UITextView。
例如,如果我在屏幕上按下一个特殊按钮,这个UITextView将显示我刚刚按下的按钮。随着我按下更多的按钮,它会记录更多的信息,因此我可以轻松地滚动UITextView来查看我的过去操作。
由于UITextView本身不会随着文本增加而滚动,所以我尝试在有东西记录到它时使其滚动到最后一行。
我尝试使用下面的scrollRangeToVisible()方法。
history.scrollRangeToVisible(NSMakeRange(count(history.text!) - 1, 1))

这里的“history”是一个UITextView输出口。

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

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

1个回答

7

我正在使用iOS 8.3,看起来这个解决方案对我不起作用。无论如何还是谢谢:) - Zhu Shengqi
另一个选项是在添加新文本之前禁用滚动,然后在之后启用它。也许插入文本会重置某些与滚动相关的内容,导致它首先弯曲到顶部。请参见https://dev59.com/j4Hba4cB1Zd3GeqPLwcn。 - Rory McKinnel
这是你之前提到的相同解决方案,似乎对我不起作用 : ( - Zhu Shengqi
抱歉我没有仔细阅读。使用第二种解决方案后,即使将scrollEnabled设置为true,我的UITextView仍然被禁用(无法滚动)。这只是一个谜。 - Zhu Shengqi
最后一次机会。尝试设置 history.layoutManager.allowsNonContiguousLayout = NO; 在这里看到的:https://dev59.com/doPba4cB1Zd3GeqPwLgc - Rory McKinnel
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接