2010-08-02 16 views
6

Tengo una imagen que está animando, hasta que presione el botón que dice "Parar". El código funciona y todo, pero la imagen vuelve a la primera imagen de la matriz. ¿Cómo puedo agregar un código para indicarle que se detenga en la imagen en la que se encuentra actualmente?Detener la animación en la imagen actual

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

Gracias


Gracias decano, oye te necesito una vez más: p ahora he sido capaz de detenerlo donde quiero, puedo hacer que continúe la animación en la que se ha detenido ??

Respuesta

3

establecer la propiedad de imagen de la UIImageView a ser el que usted desea detenerse en

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

El cuadro actual es sólo la duración de la animación dividido por la cantidad de tiempo que ha estado animatin (usted tiene que almacenar el tiempo que comenzó a animarse a sí mismo!)

+0

Gracias deanWombourne: D – awlcs

+0

Hola, pero ¿cómo almacenar el tiempo que comencé la animación? – awlcs

+1

Algo como __startTime = [[NSDate date] timeIntervalSince1970]; __ debe darle un tiempo de referencia (como NSTimeInterval). Puede obtener la duración de la animación en __NSTimeInterval duration = [[NSDate date] timeIntervalSince1970] - startTime; __ – deanWombourne

Cuestiones relacionadas