iOS:以编程方式将文本视图滚动到底部会在文本后创建一个大的白色 space
iOS: Scrolling text view to bottom programmatically creates a large white space after the text
我正在尝试将文件内容加载到 ViewController
的 viewDidLoad()
上的 TextView
。我希望用户看到从文件加载的最后内容,所以我尝试了提到的解决方案 here。
let bottom = textView.contentSize.height - textView.bounds.size.height
textView.setContentOffset(CGPoint(x: 0, y: bottom), animated:true)
文本视图将向下滚动,但如果我们再次向下滚动,则会创建一个大的白色 space。
通过更新内容偏移量,您实际上是在向滚动视图的内容添加那么多的偏移量。这里有
let bottom = textView.contentSize.height - textView.bounds.size.height textView.setContentOffset(CGPoint(x: 0, y: bottom), animated: true)
这些你在底部添加了额外的 space。因此,要自动将内容滚动到最后一行,请尝试使用 scrollRangeToVisible
函数。就像您在问题中提到的最受好评的答案一样,您曾经将文本视图滚动到最后一行。
这个小改动解决了我的问题:
let bottom = CGPoint(x: 0, y: textView.contentSize.height - textView.frame.size.height)
textView.setContentOffset(bottom, animated: false)
发布我的答案,以便其他人觉得这有帮助。
谢谢大家的支持
我正在尝试将文件内容加载到 ViewController
的 viewDidLoad()
上的 TextView
。我希望用户看到从文件加载的最后内容,所以我尝试了提到的解决方案 here。
let bottom = textView.contentSize.height - textView.bounds.size.height
textView.setContentOffset(CGPoint(x: 0, y: bottom), animated:true)
文本视图将向下滚动,但如果我们再次向下滚动,则会创建一个大的白色 space。
通过更新内容偏移量,您实际上是在向滚动视图的内容添加那么多的偏移量。这里有
let bottom = textView.contentSize.height - textView.bounds.size.height textView.setContentOffset(CGPoint(x: 0, y: bottom), animated: true)
这些你在底部添加了额外的 space。因此,要自动将内容滚动到最后一行,请尝试使用 scrollRangeToVisible
函数。就像您在问题中提到的最受好评的答案一样,您曾经将文本视图滚动到最后一行。
这个小改动解决了我的问题:
let bottom = CGPoint(x: 0, y: textView.contentSize.height - textView.frame.size.height)
textView.setContentOffset(bottom, animated: false)
发布我的答案,以便其他人觉得这有帮助。 谢谢大家的支持