Ios 子类CALayer动画函数不设置动画

Ios 子类CALayer动画函数不设置动画,ios,swift,calayer,cabasicanimation,Ios,Swift,Calayer,Cabasicanimation,目前,我已将CALayer子类化,以便为UITextField创建可设置动画的底部边框。但是,我的animateColor功能不起作用。我已经测试了函数是否被调用,它是否被调用。但是,没有动画发生。我做错了什么 class KTextFieldBottomBorder:CALayer { override init!() { super.init() commonInit() } override init!(layer: AnyObject!) { super.in

目前,我已将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")
}

}

您需要通过设置
关键路径
来定义应设置动画的属性

colorAnimation.keyPath = "backgroundColor"

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

正确。我在
colorAnimation
声明中将其直接更改为
var colorAnimation=cabasicanitation(keyPath:“backgroundColor”)
,以减少冗长。谢谢