要使用关键帧动画,请尝试:
let gradientAnimation = CAKeyframeAnimation(keyPath: "locations")
gradientAnimation.values = [[0.0, 0.0, 0.25], [0.375, 0.5, 0.625], [0.75, 1.0, 1.0]]
gradientAnimation.duration = 3.0
gradientAnimation.repeatCount = Float.infinity
gradientLayer.add(gradientAnimation, forKey: nil)
这将在三个时间之间平均进行。要更改关键帧发生的时间,请设置keyTimes
:
gradientAnimation.keyTimes = [0.0, 0.4, 1.0]
这将设置应为每个元素传递的动画百分比values
反映动画的当前状态。这也应该具有相同的长度values
.
I don’t actually know Swift, so this should work, but I can’t guarantee it.