Pergunta

Eu gostaria de ajuda em algumas estratégias para sequenciar algumas animações.

Eu subclasse UIImageView para que eu pudesse escrever algumas acções de animação personalizada em uma imagem. Eu implementei alguns métodos a serem utilizados como ações que eu poderia chamar de minha imagem exemplo:

-(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.

No meu método viewDidLoad eu criar uma instância do meu UIImageView subclasse. Que maneiras existem para chamar essas animações em sequência?

Eu estava pensando em usar um NSTimer para lidar com as animações, mas não tinha certeza se você pudesse escrever um objeto NSTimer para lidar com múltiplas chamadas de método.

exemplo:

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

Já vi várias perguntas sobre o uso de um NSTimer, mas nenhum que dizem respeito especificamente a este problema. Observação: serra I que os docs dev no site da Apple também recomendam o uso do performSelector: withObject: afterDelay: em alguns casos, mas queria saber se isso iria oferecer flexibilidade suficiente.

Além disso, eu já deu uma olhada no quadro Cocos2d, e embora eu possa usar seus métodos ~. (Ações seqüência: etc), eu estou escolhendo para resolver este problema com UIKit / Foundation, etc

Foi útil?

Solução

Você usa animação? Quer dizer que você pode girar sua imagem dentro [UIView beginAnimations: (NSString *) contexto animationID: (void *) contexto] bloco. Lá você pode adicionar um método delegado que será chamado após o término da animação atual. E lá você pode chamar o seu numbersFlashAnim. (Sorry for my Inglês ;-))

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