Domanda

Vorrei un aiuto su alcune strategie per sequenziare alcune animazioni.

Ho eseguito la sottoclasse di UIImageView in modo da poter scrivere alcune azioni di animazione personalizzate su un'immagine. Ho implementato alcuni metodi da utilizzare come azioni che potrei chiamare sulla mia immagine esempio:

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

Nel mio metodo viewDidLoad creo un'istanza della mia sottoclasse UIImageView. Quali modi esistono per chiamare queste animazioni in sequenza?

Stavo pensando di utilizzare un NSTimer per gestire le animazioni, ma non ero sicuro di poter scrivere un oggetto NSTimer per gestire più chiamate di metodo.

Esempio:

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

Ho visto diverse domande sull'uso di un NSTimer, ma nessuna che riguarda specificamente questo problema. Nota: ho visto che i documenti di sviluppo sul sito di apple raccomandano anche l'uso di performSelector: withObject: afterDelay: in alcuni casi, ma mi chiedevo se ciò potesse offrire abbastanza flessibilità.

Inoltre, ho già dato un'occhiata al framework Cocos2d, e anche se posso usare i loro metodi ~ (Azioni di sequenza: ecc.), sto scegliendo di risolvere questo problema con UIKit / Foundation, ecc.

È stato utile?

Soluzione

Usi l'animazione? Voglio dire che puoi ruotare la tua immagine all'interno [UIView beginAnimations: (NSString *) animationID context: (void *) context] block. Lì puoi aggiungere un metodo delegato che verrà chiamato al termine dell'attuale animazione. E lì puoi chiamare i tuoi numeri Flash Flash. (Scusate il mio inglese ;-))

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top