【发布时间】:2016-07-25 07:43:35
【问题描述】:
我正在尝试制作一个非常基本的CAGradientLayer 动画。我有一个基本的 2 色 CAGradientLayer 设置并添加到我的 UIViewController。
// Set up the gradient layer.
var gradientLayer: CAGradientLayer! {
let layer = CAGradientLayer()
layer.frame = self.view.bounds
layer.colors = [UIColor.redColor().CGColor, UIColor.yellowColor().CGColor]
layer.locations = [0.0, 1.0]
return layer
}
我正在尝试使用以下代码对其进行动画处理:
@IBAction func changeBackground(sender: AnyObject) {
let oldColors = self.gradientLayer.colors
let newColors = [UIColor.purpleColor().CGColor, UIColor.blueColor().CGColor]
self.gradientLayer.colors = newColors
let animation: CABasicAnimation = CABasicAnimation(keyPath: "colors")
animation.fromValue = oldColors
animation.toValue = newColors
animation.duration = 0.3
animation.removedOnCompletion = true
animation.fillMode = kCAFillModeForwards
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animation.delegate = self
self.gradientLayer.addAnimation(animation, forKey: "animateGradientColorChange")
}
但是,此代码不会对CAGradientLayer 产生任何更改。我在这里做错了什么?
【问题讨论】:
标签: ios swift core-graphics caanimation cagradientlayer