2010-08-02 14 views
6

Ho un'immagine che si sta animando, finché non si preme il pulsante "Stop". Il codice funziona e tutto, ma l'immagine ritorna alla prima immagine dell'array. Come posso aggiungere un codice per dirgli di fermarsi all'immagine in cui si trova attualmente?Interrompi animazione all'immagine attuale

- (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];  
} 

Grazie


Grazie Dean, hey ho bisogno di te ancora una volta: p ora sono stato in grado di fermarlo dove voglio, posso farlo continuare l'animazione in cui si è fermato ??

risposta

3

Impostare la proprietà immagine del UIImageView essere quello che si desidera fermarsi a

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

Il frame corrente è solo la durata dell'animazione divisa per la quantità di tempo che siete stati animatin (Avrete devi memorizzare l'ora in cui hai iniziato ad animarti!)

+0

Grazie deanWombourne: D – awlcs

+0

hey ma come memorizzare l'ora in cui ho iniziato l'animazione? – awlcs

+1

Qualcosa come __startTime = [[Data NSDate] timeIntervalSince1970]; __ dovrebbe darti un tempo di riferimento (come NSTimeInterval). Puoi ottenere la durata dell'animazione di __NSTimeInterval duration = [[Data NSDate] timeIntervalSince1970] - startTime; __ – deanWombourne

Problemi correlati