Определить завершение анимации - PullRequest
5 голосов
/ 28 декабря 2011

Итак,

Я выполняю простую анимацию с помощью CABasicAnimation (как показано ниже).

CAAnimationGroup *theGroup = [CAAnimationGroup animation];
theGroup.fillMode = kCAFillModeForwards;
theGroup.removedOnCompletion = NO;
theGroup.delegate = self;
theGroup.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

theGroup.duration = inDuration;
theGroup.repeatCount = 0;
theGroup.animations = [NSArray arrayWithObjects:rotationZ, theAnimationX, theAnimationY, nil]; // you can add more

[inLayer addAnimation:theGroup forKey:@"animateLayer"];

NSLog (@"ABCD");
// This gets called before end of animation

Есть ли какой-нибудь метод, например -(BOOL) isAnimationCompleted;, чтобы я мог знать, когда анимация завершится?

Я хочу запустить метод сразу после завершения анимации. Есть идеи?

Ответы [ 2 ]

9 голосов
/ 28 декабря 2011

Реализация метода

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag

, который вы можете увидеть в документе здесь .

0 голосов
/ 20 января 2015

Я использую категорию, чтобы создать такой метод:

[group setCompletionBlock:^{

}];

Смотрите мой ответ здесь: https://stackoverflow.com/a/28051909/1485701

...