Циклическая обратимая анимация с использованием Core Animation

В моем приложении iOS 5 у меня есть пользовательское UIButton, изображение которого имеет красный шар. Когда кнопка нажата, я бы хотел, чтобы шар начал пульсировать / исчезать между красным и зеленым. У меня есть как красное, так и зеленое изображения, и я могу успешно пересечь -растворение между ними, используя следующий код:

CABasicAnimation *imageSwitchAnimation = [CABasicAnimation animationWithKeyPath:@"contents"];       
imageSwitchAnimation.fromValue = (id)[UIImage imageNamed:@"red.png"].CGImage;
imageSwitchAnimation.toValue = (id)[UIImage imageNamed:@"green.png"].CGImage;
imageSwitchAnimation.duration = 1.5f;        
[self.button.imageView.layer addAnimation:imageSwitchAnimation forKey:@"animateContents"];

Однако я хотел бы, чтобы анимация продолжалась вечно (, ну, пока я не скажу ей остановиться ), а также чтобы анимация реверсировалась и зацикливалась. Другими словами, закрасьте красный -> зеленый -> красный, а затем повторите.

Я попытался поместить блок анимации выше в бесконечный цикл (вместе с некоторой логикой, чтобы определить, должно ли затухание идти от красного -> зеленого или зеленого -> красного ), но это просто блокирует -вверх. все приложение.

Другие решения, кажется, используют Cocos2d, который кажется довольно тяжелым -весом, поскольку это единственная анимация, которая мне нужна в приложении (, поэтому я не хочу использовать такие фреймворки, если в этом нет крайней необходимости ).

Любая помощь будет принята с благодарностью.

6
задан Skoota 15 April 2012 в 10:12
поделиться