2010-08-02 16 views
6

J'ai une image en cours d'animation, jusqu'à ce que vous appuyiez sur le bouton "Stop". Le code fonctionne et tout, mais l'image retourne à la première image dans le tableau. Comment puis-je ajouter un code pour lui dire de s'arrêter à l'image à laquelle il est actuellement?Arrêter l'animation à l'image actuelle

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    imageView.animationImages = [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"a0001.png"], 
          [UIImage imageNamed:@"a0002.png"], 
          [UIImage imageNamed:@"a0003.png"], 
          [UIImage imageNamed:@"a0004.png"], 
          [UIImage imageNamed:@"a0005.png"], nil]; 

    imageView.animationDuration = 3.00; 
    imageView.animationRepeatCount = 0; 
    [imageView startAnimating]; 
    [self.view addSubview:imageView]; 
} 

- (IBAction)stopAni {  
    [imageView stopAnimating];  
} 

Merci


Merci doyen, hey je dois encore une fois: p maintenant j'ai été en mesure de l'arrêter où je veux, je peux le faire continuer l'animation où il a cessé ??

Répondre

3

Définissez la propriété image du UIImageView être celui que vous voulez arrêter à

- (IBAction)stopAni { 
    [imageView stopAnimating]; 
    [imageView setImage:[[imageView animationImages] objectAtIndex:currentFrame]; 
} 

Le cadre actuel est juste la durée de l'animation divisée par la quantité de temps que vous avez été animatin (vous avoir à stocker le temps que vous avez commencé à vous animer!)

+0

Merci deanWombourne: D – awlcs

+0

hey mais comment stocker le temps j'ai commencé l'animation? – awlcs

+1

Quelque chose comme __startTime = [[NSDate date] timeIntervalSince1970]; __ devrait vous donner une heure de référence (comme NSTimeInterval). Vous pouvez obtenir la durée de l'animation par __NSTimeInterval duration = [[NSDate date] timeIntervalSince1970] - startTime; __ – deanWombourne