将 TextView 滚动到顶部
Scroll TextView to the top
我有一个显示长文本的文本视图 (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
}
不幸的是,当显示文本视图时,文本没有滚动到顶部而是在中间某处。
我在想,要么设置 contentOffset 的方式不对,要么我在错误的时间设置(也许文本在 设置 contentOffset 后被更改? ).
我已经尝试了很多,我什至联系了Apple Code Level Support。他们帮不了我,真的(这让我很惊讶)——你能吗?
非常感谢。谢谢。
您可能需要编写更多 information/code,因为如果您在只有一个 VC 带有 UITextView 的干净项目中尝试这段代码,您会发现它确实有效。如果您确实在使用某些条件 (if something
),这可能就是问题所在。 something
在你的真实代码中是什么?
我有一个非常相似的问题,尤其是在 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)
}
您需要使用 viewDidLayoutSubviews()
以便将滚动视图设置到顶部。
override func viewDidLayoutSubviews() {
textView.setContentOffset(.zero, animated: false)
}
我有一个显示长文本的文本视图 (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
}
不幸的是,当显示文本视图时,文本没有滚动到顶部而是在中间某处。
我在想,要么设置 contentOffset 的方式不对,要么我在错误的时间设置(也许文本在 设置 contentOffset 后被更改? ).
我已经尝试了很多,我什至联系了Apple Code Level Support。他们帮不了我,真的(这让我很惊讶)——你能吗?
非常感谢。谢谢。
您可能需要编写更多 information/code,因为如果您在只有一个 VC 带有 UITextView 的干净项目中尝试这段代码,您会发现它确实有效。如果您确实在使用某些条件 (if something
),这可能就是问题所在。 something
在你的真实代码中是什么?
我有一个非常相似的问题,尤其是在 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)
}
您需要使用 viewDidLayoutSubviews()
以便将滚动视图设置到顶部。
override func viewDidLayoutSubviews() {
textView.setContentOffset(.zero, animated: false)
}