// 获取渐变的当前颜色。 let oldColors = self.gradientLayer.colors // 定义渐变的新颜色。 let newColors = [UIColor.red.cgColor, UIColor.yellow.cgColor] // 设置渐变的新颜色。 self.gradientLayer.colors = newColors // 初始化新动画以更改渐变的颜色。 let animation: CABasicAnimation = CABasicAnimation(keyPath: "colors") // 设置当前颜色值。 animation.fromValue = oldColors // 设置新的颜色值。 animation.toValue = newColors // 设置动画的持续时间。 animation.duration = 0.3 // 设置动画以在完成后将其删除。 animation.isRemovedOnCompletion = true // 将接收器设置为在动画完成时在其最终状态下保持可见。 animation.fillMode = kCAFillModeForwards // 设置线性步调,使动画在其持续时间内均匀发生。 animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear) // 设置动画的委托。 animation.delegate = self // 添加动画。 self.gradientLayer.addAnimation(animation, forKey: "animateGradientColorChange")
结果: