Как вложить несколько анимаций CA, как это делает UIView animateWithDuration? Например, мне нужно анимировать 6 анимаций, где каждая следующая анимация идет после предыдущей. Итак, с UIView animateWithDuration каждая следующая анимация вызывается из полного блока. Позволяет ли CA использовать блоки и т. д.? Если нет, то как выполнять вложенные последовательные анимации?
Как вложить несколько анимаций CA?
Ответы (2)
CAAnimation
не имеет блочного API, но вы можете использовать его метод делегата animationDidStop:finished:
для объединения нескольких анимаций в цепочку.
Если вы делаете это часто, вы можете написать для этого собственную оболочку на основе блоков.
person
omz
schedule
16.08.2011
На данный момент не так сложно написать собственную оболочку :) Один вопрос об использовании делегата: реализация метода animationDidStop:finished: делегата будет запускать его для всех анимаций на экране (включая анимацию UIView) или только для анимаций CA?
- person Centurion; 16.08.2011
Только для анимаций, для которых вы указали себя в качестве делегата.
- person omz; 16.08.2011
В качестве альтернативы ответу omz вы можете настроить объекты NSTimer для запуска последовательных частей анимации.
[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(legOne:) userInfo:nil repeats:NO];
[NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(legTwo:) userInfo:nil repeats:NO];
Где legOne: — метод, выполняющий первую часть анимации и т. д.
person
Mr. Berna
schedule
16.08.2011