Анимация завершения обратного вызова для CALayer? - PullRequest
5 голосов
/ 01 января 2009

Используя iPhone CALayer, я хочу анимацию вращения для моего спиртового слоя, но я также хочу обратный вызов для конца анимации, жарко, чтобы сделать это?

Я думаю, может быть, мне следует использовать CABasicAnimation, но я не знаю, как сделать вращение с помощью CABasicAnimation, как вы думаете?

Спасибо

Ответы [ 2 ]

5 голосов
/ 01 января 2009

Если вы установите делегата для CAAnimation, вы можете добавить метод обратного вызова:

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

Это вызывается, когда анимация завершена. Посмотрите примеры вращающихся анимаций с помощью матрицы преобразования CGAffineTransform по этой ссылке:

http://iphonedevelopment.blogspot.com/2008/10/demystifying-cgaffinetransform.html

3 голосов
/ 02 января 2009

Кроме того, вы также можете сделать такой же тип обратного вызова для анимации UIView, заключив ваш вызов в поворот UIView в следующем блоке кода

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(rotationAnimationHasFinished:finished:context:)];
// Rotate the view here
[UIView commitAnimations];

и затем определение метода делегата

- (void)rotationAnimationHasFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context;
{
// Handle the completion of the animation
}

в вашем делегате, который будет делать все, что вам нужно после завершения анимации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...