gpt4 book ai didi

swift - 滚动到 UITextView 的底部停止工作

转载 作者:搜寻专家 更新时间:2023-11-01 05:33:53 26 4
gpt4 key购买 nike

我应该如何滚动到 UITextView 的底部?当我更新到 Swift 4 时,我以前的实现是从之前关于 stackoverflow 的帖子中获取的,它停止工作了。

我的程序定期将新信息粘贴到 UITextView (consoleZe),然后滚动到它的底部,这样最新的更新总是可见的,控制台风格。我的 updateConsole 方法基本上是这样的:

    if let tempString = consoleZe.text {
currentText = tempString
}

consoleZe.text = currentText + "A message!\n"

let bottom = NSMakeRange(consoleZe.text.characters.count - 1, 1)
consoleZe.scrollRangeToVisible(bottom)
print("Scrolled to \(bottom)")

在 Swift 3 中,这非常有效!现在在 Swift 4 中,它只会滚动有时

我不知道为什么/什么时候滚动或不滚动。我添加了打印语句来尝试找出答案。该语句每次都会出现在 Swift 的控制台上,并带有新更新的“底部”……但在模拟器中,它实际上只是偶尔滚动一次。如果我一次发送一条消息,屏幕会在 10 条消息后奇迹般地滚动,22 条消息后,20 条消息,20 条消息,21 条消息后...

是否有关于 scrollRangeToVisible 的新要求或怪癖?

更重要的是,我做错了吗?

是否有其他一些(更有效的)方法可以让 UITextView 在我更改其文本值后始终滚动到底部?

最佳答案

查看 this answer .

对于 Swift 4,类似下面的内容似乎对我有用(在 iOS 9-12 中):

let textViewBottom = NSMakeRange(textView.text.count - 1, 1)
textView.scrollRangeToVisible(textViewBottom)
textView.isScrollEnabled = false
textView.isScrollEnabled = true

关于swift - 滚动到 UITextView 的底部停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46457660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com