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)
    }
}

我知道它并不完美,但至少它按预期工作。