Базовая анимация ... циклическая анимация? - PullRequest
7 голосов
/ 24 апреля 2009

Чтобы сформулировать мой вопрос настолько просто, насколько это возможно, есть ли способ создать основную анимационную последовательность, которая будет повторяться снова и снова до остановки?

В частности, я делаю собственный класс, для которого я хочу иметь метод -start и -stop, который заставит его пульсировать. Написание анимационного кода для импульса не является проблемой, скорее, как сделать его повторяющимся?

Заранее спасибо за любые ответы!

1 Ответ

15 голосов
/ 24 апреля 2009

Согласно документации , вы делаете это, создавая анимацию с очень большим repeatCount (код взят из документации, на которую я ссылался):

// create the animation that will handle the pulsing.
CABasicAnimation* pulseAnimation = [CABasicAnimation animation];

// over a one second duration, and run an infinite
// number of times
pulseAnimation.duration = 1.0;
pulseAnimation.repeatCount = HUGE_VALF;

// we want it to fade on, and fade off, so it needs to
// automatically autoreverse.. this causes the intensity
// input to go from 0 to 1 to 0
pulseAnimation.autoreverses = YES;

edit : ОП спросил, как остановить анимацию. Из следующего абзаца в документации:

Вы запускаете явную анимацию отправив сообщение addAnimation:forKey: в целевой слой, передавая анимация и идентификатор как параметры. После добавления в цель слой будет работать явная анимация пока анимация не завершится или удаляется из слоя. идентификатор, используемый для добавления анимации в слой также используется, чтобы остановить его вызывая removeAnimationForKey:. Вы может остановить все анимации для слоя отправка слоя а removeAllAnimations сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...