Swift contentOffset 滚动
Swift contentOffset scroll
我正在为 tvOS 开发一个小应用程序,我需要在其中显示 UITextView。
不幸的是,有时此文本无法容纳在屏幕内,这就是为什么我需要一种以编程方式滚动到其底部的方法。
我试过使用以下代码:
self.setContentOffset(offset, animated: true)
它实际上按预期工作,除了我需要处理动画速度,以便用户可以实际阅读;目前速度太快了。
这是我尝试做的,但收效甚微:
let offset = CGPoint(x: 0, y: contentSize.height - bounds.size.height)
UIView.animate(withDuration: 4, animations: {
self.setContentOffset(offset, animated: false)
})
我需要一种方法来将文本保持在原位并滚动它以显示缺失的行。
我在 UIScrollView 中使用 UITextView。
谢谢。
如果有人正在寻找解决方案,这就是我最终使用的:
var textTopDistance = 100
//calculate height of the text not being displayed
textNotVisibleHeight = descriptionLabel.contentSize.height - scrollView.bounds.size.height
func scrollText() {
//start new thread
DispatchQueue.main.async() {
//animation
UIView.animate(withDuration: 6, delay: 2, options: UIViewAnimationOptions.curveLinear, animations: {
//set scrollView offset to move the text
self.scrollView.contentOffset.y = CGFloat(self.textNotVisibleHeight - self.textTopDistance)
}, completion: nil)
}
}
我知道它并不完美,但至少它按预期工作。
我正在为 tvOS 开发一个小应用程序,我需要在其中显示 UITextView。
不幸的是,有时此文本无法容纳在屏幕内,这就是为什么我需要一种以编程方式滚动到其底部的方法。
我试过使用以下代码:
self.setContentOffset(offset, animated: true)
它实际上按预期工作,除了我需要处理动画速度,以便用户可以实际阅读;目前速度太快了。
这是我尝试做的,但收效甚微:
let offset = CGPoint(x: 0, y: contentSize.height - bounds.size.height)
UIView.animate(withDuration: 4, animations: {
self.setContentOffset(offset, animated: false)
})
我需要一种方法来将文本保持在原位并滚动它以显示缺失的行。
我在 UIScrollView 中使用 UITextView。
谢谢。
如果有人正在寻找解决方案,这就是我最终使用的:
var textTopDistance = 100
//calculate height of the text not being displayed
textNotVisibleHeight = descriptionLabel.contentSize.height - scrollView.bounds.size.height
func scrollText() {
//start new thread
DispatchQueue.main.async() {
//animation
UIView.animate(withDuration: 6, delay: 2, options: UIViewAnimationOptions.curveLinear, animations: {
//set scrollView offset to move the text
self.scrollView.contentOffset.y = CGFloat(self.textNotVisibleHeight - self.textTopDistance)
}, completion: nil)
}
}
我知道它并不完美,但至少它按预期工作。