从UIView.animateWithDuration中断和重置UIScrollView动画

时间:2015-03-25 07:31:37

标签: ios swift animation uiscrollview

我正在制作卡拉OK应用程序,用户需要通过按下按钮才能重新开始。

我的UIScrollView包含UITextView中的大块文字。

我正在使用UIView.animateWithDuration滚动文字一段时间。我需要能够中断/停止动画并将其重置回到开头。

不幸的是,对我来说,每当我停止动画时,UITextView都会消失,我似乎无法重新添加它。

let bottomOffset:CGPoint = CGPoint(x: 0, y: self.textView.frame.size.height)
UIView.animateWithDuration(NSTimeInterval(duration),
    delay: NSTimeInterval(0.0) ,
    options: UIViewAnimationOptions.CurveLinear,
    animations: {
        self.scrollView.setContentOffset(bottomOffset, animated: false)
    },
    completion: { finished in
        reset()
    }
)

我通过调用:

来停止动画
UIView.animateWithDuration(0.0, animations: {
    self.scrollView.scrollRectToVisible(CGRect(x: 0, y: 0, width: 0, height: 0), animated: true)
})

我需要弄清楚如何:

  • 停止动画
  • 保持UITextView可见
  • UIScrollView滚动到顶部
  • 开始再次滚动

我的代码库位于 Swift ,但我很乐意接受 Objective-C 中的答案。

0 个答案:

没有答案