iPhone - Поймать конец сгруппированной анимации - PullRequest
0 голосов
/ 01 октября 2011

Я анимирую 2 представления, каждое со своей CAAnimationGroup, которая содержит 2 CAAnimations. Они запускаются одновременно (если время вычисления незначительно) и имеют одинаковую продолжительность.

Как мне узнать, когда закончены обе сгруппированные анимации.

Я поставил - (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag метод делегата, но ... Что я могу проверить? Звучит просто, но я не вижу способа сделать это.

1 Ответ

0 голосов
/ 02 октября 2011

Вы можете использовать две переменные для отслеживания завершения анимации:

BOOL firstAnimFinished;
BOOL secondAnimFinished;

затем в вашем делегате animationDidStop вы проверяете, какая анимация вызывает метод, и устанавливаете флаги соответствующим образом. Суть в том, что вам нужно будет добавить ключ для идентификации анимаций, когда они вызывают делегата (созданные вами анимации не будут теми, которые вызывают делегат, что является предметом для другого вопроса / разговора). Например:

// when you create the animations
[firstAnmim setValue: @"FirstAnim" ForKey: @"Name"];
[secondAnmim setValue: @"SecondAnim" ForKey: @"Name"];

// Your delegate
- (void)animationDidStop:(CAAnimation*)theAnimation finished:(BOOL)flag {
    NSString* name = [theAnimation valueForKey: @"Name"];
    if ([name isEqualToString: @"FirstAnim"]) {
        firstAnimFinished = YES;
    } else if ([name isEqualToString: @"SecondAnim"]) {
        secondAnimFinished = YES;
    }
    if (firstAnimFinished && secondAnimFinished) {
        // ALL DONE...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...