Estás en: animacion con UIImageView
Para dar las gracias debes entrar o registrarte en el foro
Hola resulta que estoy tratando de hacer una vista (UIViewController) en la que dispongo de un UIImageView que ocupa toda la pantalla del ipad y otro pequeño UIImageView en una esquina el cual quiero animar para mostrar una cuenta atrás. El UIImageView de fondo está controlado por un UINavigationController, sin embargo el UIImageView de la cuenta atrás al que he llamado "contador" lo controlo desde el método (void)viewDidLoad de la siguiente forma:
- (void)viewDidLoad {
NSArray *matrizContador;
matrizContador = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"contador.png"],
[UIImage imageNamed:@"contador2.png"],
[UIImage imageNamed:@"contador3.png"],
[UIImage imageNamed:@"contador4.png"],
nil];
contador.animationImages = matrizContador;
contador.animationDuration = 4;
contador.animationRepeatCount = 1;
[contador startAnimating];
[matrizContador release];
[super viewDidLoad];
}
- (void) comprobarAnimacion {
while (contador.isAnimating) {
...
//Espera activa
}
...
//Codigo inicializacion y control de AVAdioPlayer
}
- (void)viewDidLoad {
NSArray *matrizContador;
matrizContador = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"contador.png"],
[UIImage imageNamed:@"contador2.png"],
[UIImage imageNamed:@"contador3.png"],
[UIImage imageNamed:@"contador4.png"],
nil];
contador.animationImages = matrizContador;
contador.animationDuration = 4;
contador.animationRepeatCount = 1;
[contador startAnimating];
[self comprobarAnimacion];
[matrizContador release];
[super viewDidLoad];
}
Existen muchas formas de solucionarlo, una sencilla y rápida seria usar un NSTimer y un contador, te escribo un ejemplo con una etiqueta:
En la cabecera: declara interface,propiedades del array/temporizador y etiqueta //En tu caso el UIImageView
En implementación sintetiza y:
- (void)viewDidLoad
{
miArray = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",nil]; myTempo = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(cambiar:) userInfo:nil repeats:YES];
[super viewDidLoad];
}
- (void) cambiar: (NSTimer *)temporizador {
if (cuenta <= 4){
etiqueta.text = [miArray objectAtIndex:cuenta];
}
else {
//Reproduce sonido
[myTempo invalidate];
cuenta=0;
}
}
Saludos