Обратный вызов завершения анимации для CALayer?

StackOverflow https://stackoverflow.com/questions/404957

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Спасибо

Это было полезно?

Решение

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

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

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

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

Другие советы

Кроме того, вы также можете выполнить аналогичный обратный вызов для анимации 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
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top