切换到另一个VC Swift后iOS动画无效

时间:2018-05-04 09:53:50

标签: ios swift animation

我有小的背景动画来改变渐变,你可以在这里看到animation

如果你看到我第一次打开应用程序,在更改View Controller动画停止后,动画正在运行。 我的代码:

   func animateGrandient() {
    UIView.animate(withDuration: 15, delay: 0, options: [.autoreverse, .curveLinear, .repeat], animations: {
        let x = -(self.gradientView.frame.width - self.view.frame.width)
        self.gradientView.transform = CGAffineTransform(translationX: x, y: 0)
    })
}

并且出口:

@IBOutlet weak var gradientView: UIImageView!

1 个答案:

答案 0 :(得分:2)

这是因为您的self.gradientView.transform在动画执行之前已经更改,因此您需要重置self.gradientView.transform

在该方法的开头添加此行 self.gradientView.transform = CGAffineTransform.identity

修正代码

 func animateGrandient() {
    self.gradientView.transform = CGAffineTransform.identity
    UIView.animate(withDuration: 15, delay: 0, options: [.autoreverse, .curveLinear, .repeat], animations: {
        let x = -(self.gradientView.frame.width - self.view.frame.width)
        self.gradientView.transform = CGAffineTransform(translationX: x, y: 0)
    })
}