子类CALayer动画功能不动画



目前,我已经子类化了CALayer来为我的UITextField创建一个可动画的底部边框。然而,我的animateColor函数不工作。我已经测试了这个函数是否被调用了。然而,没有动画正在发生。我做错了什么?

class KTextFieldBottomBorder:CALayer {
override init!() {
    super.init()
    commonInit()
}
override init!(layer: AnyObject!) {
    super.init(layer: layer)
    commonInit()
}
required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}
func commonInit() {
    // Appearance
    self.backgroundColor = UIColor.lightGrayColor().CGColor
}
// MARK: Animations
func animateColor (endingColor:UIColor, duration:CFTimeInterval) {
    var colorAnimation = CABasicAnimation(keyPath: "color")
    colorAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
    colorAnimation.toValue = endingColor.CGColor
    colorAnimation.duration = duration
    colorAnimation.fillMode = kCAFillModeForwards
    super.addAnimation(colorAnimation, forKey: "color")
    println("X")
}
}

您需要通过设置keyPath来定义要动画化的属性。

colorAnimation.keyPath = "backgroundColor"

addAnimationkey参数仅用作动画的标识符。

最新更新