У меня есть CALayer с градиентным цветовым эффектом.Я хочу изменить значения «местоположения» и «цвета», чтобы изменить градиент.И я пытаюсь его оживить.
Но с помощью следующего кода он просто мгновенно меняется на новые значения.
let gradientDuration = 0.25
let locationAnimation = CABasicAnimation(keyPath: "locations")
locationAnimation.fromValue = lowerGradientView.layer.locations
locationAnimation.toValue = newLocations
let colorsAnimation = CABasicAnimation(keyPath: "colors")
colorsAnimation.fromValue = lowerGradientView.layer.colors
colorsAnimation.toValue = newColors
let animationGroup = CAAnimationGroup()
animationGroup.duration = gradientDuration
animationGroup.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
animationGroup.animations = [locationAnimation, colorsAnimation]
lowerGradientView.layer.add(animationGroup, forKey: "locationAndColors")
lowerGradientView.layer.locations = newLocations as [NSNumber]?
lowerGradientView.layer.colors = newColors
Что я делаю неправильно, чтобы слой не анимировалсяизменения?