我的主要观点之一,动画根据设置的延迟和持续时间执行。但是,当我转向新视图时,动画会立即完成。这怎么样?只有在通过viewDidLoad()
中的代码执行此动画时才会发生这种情况override func viewDidLoad() {
super.viewDidLoad()
setProgress()
}
// the function below annimates a circular progress view
func setProgress() {
var to:Double = ((360.0 / 4) * increment)
progressCircle.animateFromAngle(360.0, toAngle: to, duration: 5) { completed in
if completed {
print("animation stopped, completed")
} else {
print("animation stopped, was interrupted")
}
}
}
答案 0 :(得分:2)
viewDidLoad
,如果您想要运行动画,则应该在viewDidAppear
中运行动画,以便在屏幕上加载视图并且组件可见。
答案 1 :(得分:0)
在viewDiDAppear中调用setProgress()
override public func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
setProgress()
}
答案 2 :(得分:0)
也许你可以在控制器的viewdidload事件之后添加延迟并使其在计时器上运行。因此,您可以达到目标并在您想要的时间内运行动画。