Я пытаюсь использовать этот код для анимации цвета фона CALayer
:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
animation.duration = 0.3;
animation.fromValue = (id)[backgroundLayer backgroundColor];
animation.toValue = (id)[[UIColor redColor] CGColor];
[backgroundLayer addAnimation:animation forKey:@"animateBackgroundColor"];
По какой-то причине это ничего не делает. Просто используя:
[backgroundLayer setBackgroundColor:[[UIColor redColor] CGColor]];
работает (хотя и без анимации) и использует:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
animation.duration=0.3;
animation.fromValue = [NSNumber numberWithFloat:1.0];
animation.toValue = [NSNumber numberWithFloat:0.0];
[backgroundLayer addAnimation:animation forKey:@"animateOpacity"];
тоже работает (с анимацией).
Почему я не могу анимировать цвет фона?
РЕДАКТИРОВАТЬ: Проблема связана с тем, что мой backgroundColor
создается с изображением шаблона (используя реализацию UIImage
... Использование сплошных цветов работает). Я все еще ищу ответ на эту проблему.