2010-09-14 4 views
2

Je sais que 'nil' efface l'imageView à la fin de l'animation. Mais y a-t-il un moyen de le terminer sur l'une des images? Quand je cours sans 'nul' à la fin c'est une belle erreur.Dans xcode, comment arrêter une animation sur une image?

imageView.animationImages = [NSArray arrayWithObjects: 
              [UIImage imageNamed:@"image1.png"], 
              [UIImage imageNamed:@"image2.png"], 
              [UIImage imageNamed:@"image3.png"], 
              [UIImage imageNamed:@"image4.png"], 
              [UIImage imageNamed:@"image5.png"], 
              [UIImage imageNamed:@"image6.png"], 
              [UIImage imageNamed:@"image7.png"], 
              [UIImage imageNamed:@"image8.png"], 
              [UIImage imageNamed:@"image9.png"], 
              [UIImage imageNamed:@"image10.png"], 
            [UIImage imageNamed:@"image0.png"],nil]; 
     imageView.animationDuration = 0.50; 
     [imageView setAnimationRepeatCount: 1]; 
     [imageView startAnimating]; 
+0

En fait, le 'nil' est simplement utilisé comme un terminateur pour une liste d'arguments de longueur variable à' -arrayWithObjects: '. Il n'est pas ajouté au tableau et, en fait, il n'est pas possible qu'une instance de NSArray contienne une entrée nulle. Si vous omettez le 'nil' c'est un crash d'exécution car la méthode' -arrayWithObjects: 'a une liste d'arguments non terminés. – jlehr

Répondre

2

Je ne pense pas qu'il y ait un moyen de faire directement, mais vous pourriez faire quelque chose comme:

//set your animationImages as stated in the question 
[imageView setAnimationDuration:0.5]; 
[imageView setAnimationRepeatCount:1]; 
[imageView startAnimating]; 
[imageView performSelector:@selector(setImage:) withObject:theFinalImage afterDelay:[imageVIew animationDuration]]; 

Fondamentalement, vous allez courir à travers les animations une fois, puis remplacer le images d'animation avec l'image statique finale.

+0

Merci beaucoup! J'ai fini par utiliser un ImageView différent pour l'image résultante, mais performselector était un énorme avantage! Merci encore! – Tru99

Questions connexes