Вы можете использовать две переменные для отслеживания завершения анимации:
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...
}
}