我有小的背景动画来改变渐变,你可以在这里看到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!
答案 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)
})
}