我有一个显示长文本的 TextView (UITextView) 在运行时设置,如下所示:
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
if something {
textView.text = "(very long text here)"
}
textView.contentOffset = CGPoint.zero // doesn't work
}
不幸的是,当显示 TextView 时,文本没有滚动到顶部而是在中间某处。
我在想,要么设置 contentOffset 的方式不对,要么我在错误的时间做这件事(也许文本在设置 contentOffset 之后发生了变化?)。
我已经尝试了很多,我什至联系了 Apple Code Level Support。他们帮不了我,真的(这让我很惊讶)——你能吗?
我会非常感激。谢谢。
最佳答案
我有一个非常相似的问题,尤其是在 iPhoneX 上使用 splitview 和测试时,当我需要 textView 滚动到顶部时,我通过将这段代码合并到我的 ViewController 中解决了这个问题:
textView.setContentOffset(.zero, animated: false)
textView.layoutIfNeeded()
如果您希望在加载 ViewController 时滚动到 textView 的顶部:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Can add an if statement HERE to limit when you wish to scroll to top
textView.setContentOffset(.zero, animated: false)
}
关于ios - 将 TextView 滚动到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54658995/