动画完成后重置UIProgressView

时间:2015-09-12 02:29:51

标签: swift uiview uikit swift2 ios9

我想在以下代码后重置(设置进度为0)我的UIProgressView:

// uploadProgress: UIProgressView!

uploadProgress.progress = 0
uploadProgress.setProgress(1.0, animated: true)

我无法在此块之后立即将uploadProgress.progress设置为0,因为这样就不会出现动画。

我也不想编辑动画持续时间。

我只想让进度回到0 AFTER 动画完全

非常感谢你的帮助。提前谢谢!

2 个答案:

答案 0 :(得分:3)

有点晚了,但我遇到了同样的问题,这就是我解决它的方法。由于UIProgressView上的动画是在图层上完成的,我们可以使用CATransaction的完成块来捕捉动画结束的时间。

CATransaction.begin()
CATransaction.setCompletionBlock({
   // do whatever you want when the animation is completed
   self.progressBar.hidden = true
})
self.progressBar.setProgress(1.0, animated: true)
CATransaction.commit()

答案 1 :(得分:1)

您可以将动画UIView.animate函数与完成处理程序一起使用。

UIView.animateWithDuration(1, animations: { () -> Void in
    self.progressBar.setProgress(1, animated: true)
}, completion: { (Bool) -> Void in
    progressBar.progress = 0
})