Pregunta

Me gustaría recibir ayuda sobre algunas estrategias para secuenciar algunas animaciones.

Subclasifiqué UIImageView para poder escribir algunas acciones de animación personalizadas en una imagen. Implementé algunos métodos para ser utilizados como acciones que podría invocar en mi imagen ejemplo:

-(void)rotateAnim; //rotates the image by a few degrees using a CGAffine Transform

-(void)numbersFlashAnim; //uses the UIImageVew.animationImages array for a 14 frame animation.

-(void)moveLeftAnim; //uses another CGAffine Transform to change the imageView's position.

En mi método viewDidLoad, creo una instancia de mi subclase UIImageView. ¿Qué formas existen para llamar a estas animaciones en secuencia?

Estaba pensando en usar un NSTimer para manejar las animaciones, pero no estaba seguro de si podría escribir un objeto NSTimer para manejar múltiples llamadas a métodos.

ejemplo:

[imageView rotateAnim]; //when this animation is done, I want to call:
[imageView numbersFlashAnim];

He visto varias preguntas sobre el uso de un NSTimer, pero ninguna que se relacione específicamente con este problema. Nota: Vi que los documentos de desarrollo en el sitio de Apple también recomiendan el uso del performSelector: withObject: afterDelay: en algunos casos, pero me preguntaba si eso ofrecería suficiente flexibilidad.

Además, ya he echado un vistazo al framework Cocos2d, y aunque puedo usar sus métodos ~ (Acciones de secuencia: etc.) elijo resolver este problema con UIKit / Foundation, etc.

¿Fue útil?

Solución

¿Usas animación? Quiero decir que puedes rotar tu imagen dentro [UIView beginAnimations: (NSString *) animationID context: (void *) context] block. Allí puede agregar un método de delegado que se llamará después de que finalice la animación actual. Y allí puedes llamar a tus números FlashAnim. (Perdón por mi inglés ;-))

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top