2
매우 기본적인 CAGradientLayer
애니메이션을 얻으려고합니다. 기본 2 색 CAGradientLayer
을 설정하고 UIViewController
에 추가했습니다. CAGradientLayer 색상 변경 애니메이션이 실행되지 않습니다.
// 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
의 변화를 얻을하지 않습니다. 여기서 내가 뭘 잘못하고 있니?