Как сгруппировать две анимации CABasicAnimation и запустить их одновременно? - PullRequest
4 голосов
/ 23 мая 2010

Я знаю, что в базовой анимации есть какой-то механизм группировки анимации. Допустим, у меня есть две CABasicAnimation firstAnimation и secondAnimation. Как бы я сгруппировал их и как бы я начал группу, чтобы начать анимацию?

1 Ответ

6 голосов
/ 24 мая 2010

Вы захотите использовать класс CAAnimationGroup.Создайте массив, содержащий нужные вам анимации, и присвойте свойству AnimationGroup animations этот массив.CAAnimationGroup является подклассом CAAnimation, поэтому вы можете добавить его в слой, используя [layer addAnimation:forKey:], как если бы вы использовали обычную анимацию.После добавления в слой все анимации в группе выполняются одновременно.

Я бы предложил сначала прочитать CAAnimationGroup Reference .Есть ряд деталей реализации, которые стоит понять, прежде чем использовать их.Например:

  1. Свойство delegate отдельных анимаций игнорируется.
  2. Свойство removeOnCompletion отдельных анимаций игнорируется.
  3. AnimationGroup имеет своюсобственные свойства delegate и removeOnCompletion.
  4. Анимации не масштабируются по времени для группы, поэтому, если продолжительность отдельной анимации превышает длительность объекта группы, она будет прервана в концепродолжительности группы.
  5. Свойство animations CAAnimationGroup копируется, а не сохраняется.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...