У меня есть расширение 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)
}
}
Проблема:
ColoursAnimation CABasicAnimation не влияет на цвет текста. Цвет текста не делает 2-секундный переход от красного к белому.
Как связать анимацию встряхивания и анимацию цветов вместе на этикетке?