【发布时间】:2018-09-08 20:42:32
【问题描述】:
我有一个 UILabel 的扩展,带有一个摇动方法。此方法摇动标签 2 秒。效果很好。
我正在尝试将 2 秒的红色 -> 白色文本颜色更改链接到标签文本。它效果不佳。
这是我的进度。
extension UILabel {
func shake() {
let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animation.duration = 2
animation.values = [
0.0, 0.0,
-4.0, 4.0,
-7.0, 7.0,
-10.0, 10.0,
-7.0, 7.0,
-4.0, 4.0,
0.0, 0.0,
]
animation.repeatCount = 1
layer.add(animation, forKey: nil)
let colorsAnimation = CABasicAnimation(keyPath: "foregroundColor")
colorsAnimation.fromValue = UIColor.red.cgColor
colorsAnimation.toValue = UIColor.white.cgColor
colorsAnimation.duration = 2
layer.add(colorsAnimation, forKey: nil)
}
}
问题:
colorsAnimation CABasicAnimation 对文本颜色没有影响。文本颜色不会在 2 秒内从红色变为白色。
如何在标签上将摇动动画和颜色动画链接在一起?
【问题讨论】:
标签: swift animation cabasicanimation cakeyframeanimation