Intentando crear una animación de dos imágenes cambiando imágenes en un UIImageView

Entonces, el código que uso para configurar la imagen originalmente (recibe datos de otro dispositivo iOS a través de BlueTooth)

    UIImage *receivedImage = [UIImage imageWithData:data];
        if(receivedImage != nil)
        {
            NSLog(@"Image received is not nil.");
        }
        self.imageView.image = receivedImage;
        UIImageView *iv = [[UIImageView alloc] initWithImage:receivedImage];
        [self.view addSubview:iv];

        [self.photoAlbum addObject:receivedImage];

funciona de maravilla con la configuración de la imagen.

Sin embargo, cuando trato de agregarlo al "álbum" de la propiedad NSMutableArray, la imagen no cambia.

  -(void)stereoscopicIterationA {
    self.imageView.image = nil;
    self.imageView.image = [self.photoAlbum objectAtIndex:1];
    NSTimer *theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(stereoscopicIterationB) userInfo:nil repeats:NO];
    NSLog(@"Image 1");

}

-(void)stereoscopicIterationB {
    self.imageView.image = nil;
    self.imageView.image = [self.photoAlbum objectAtIndex:0];
    NSTimer *theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(stereoscopicIterationA) userInfo:nil repeats:NO];
    NSLog(@"Image 0");
}

-(void)openAlbum:(id)sender
{

    if([self.photoAlbum objectAtIndex:0] != nil && [self.photoAlbum objectAtIndex:1] == nil)
    {
    self.imageView.image = [self.photoAlbum objectAtIndex:0];


    [self dismissModalViewControllerAnimated:NO];
    }
    else if([self.photoAlbum objectAtIndex:0] !=nil && [self.photoAlbum objectAtIndex:1] !=nil ){
        //Set up NSTimer to swap self.imageView.image back and forth between 0 and 1 of photoAlbum.
        NSLog(@"Timer set up");
        NSTimer *theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(stereoscopicIterationA) userInfo:nil repeats:YES];

    }

¿Alguna idea?

Más específicamente, parece que las imágenes no se agregan/mantienen en absoluto en el álbum NSMutableArray. El programa falla con un error de fuera de límites [0 .. 0].

preguntado el 28 de julio de 12 a las 06:07

2 Respuestas

Parece, desde la actualización de su pregunta, como si self.photoAlbum is nil. Debe asegurarse de haber asignado la matriz y haberla asignado a self.photoAlbum.

Hacer esto:

self.photoAlbum = [[NSMutableArray alloc] init];

antes de intentar agregar a la matriz.

Respondido 28 Jul 12, 07:07

Hmm... por alguna razón esto no funciona, ¿hay alguna forma de solucionar esto y usar otro método? - usuario748176

¿Puede ser más específico acerca de "no funciona"? ¿Cuáles son los síntomas? - martin kenny

Si solo desea una animación de dos imágenes, puede crear una matriz de ellas y configurarla en el animationImages propiedad, luego llame startAnimating.

self.imageView.animationImages = self.photoAlbum;
[self.imageView startAnimating];

Entonces también puede configurar el animationDuration y animationRepeatCount propiedades.

Respondido 28 Jul 12, 07:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.