Pergunta

Usando iPhone CALayer, eu quero uma animação de rotação para minha camada de espírito, mas também quero uma chamada de retorno para o final da animação, quente para fazer isso?

Eu acho que talvez eu deveria usar CABasicAnimation, mas eu não sei como fazer a rotação usando CABasicAnimation, alguma idéia?

Graças

Foi útil?

Solução

Se você definir um delegado para um CAAnimation, você pode adicionar o método de retorno:

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

Isso é chamado quando a animação está completa. Olhar para os exemplos de rotação animações através de uma matriz de transformação CGAffineTransform, como por esta ligação:

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

Outras dicas

Como um aparte, você também pode fazer o mesmo tipo de retorno de chamada para uma animação UIView envolvendo a sua chamada para rodar um UIView na seguinte bloco de código

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

e, em seguida, a definição de um método delegado

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

dentro de seu delegado que vai fazer o que você precisa após a animação foi concluída.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top