如何快速停止UIView动画

时间:2018-12-19 11:46:50

标签: swift animation uiview

我正在使用Swift语言。我为一个定时器编写了一个动画,该动画持续30秒并且充满。现在,我想停止播放此动画,但是我不知道如何!我希望能够从头开始。动画。 谢谢,如果您有帮助我的解决方案或方法

2 个答案:

答案 0 :(得分:0)

您可以尝试

self.myView.layer.removeAllAnimations()

答案 1 :(得分:0)

两种可能的方式:

  • 存储总时间的变量。并且在每个计时器中重复增加此值。当总时间达到30秒时,删除动画
  • 开始动画时,设置在特定时间后执行的动作

第一种可能的方法:

var time: Double = 0

@objc func timerChangedValue() {
    time += 1
    if time == 30 {
        view.layer.removeAllAnimations()
        view.layoutIfNeeded()
    }
}

第二种可能的方法:

DispatchQueue.main.asyncAfter(deadline: .now() + 30) {
    self.view.layer.removeAllAnimations()
    self.view.layoutIfNeeded()
}