Estoy escribiendo una aplicación de iOS, y tengo que mostrar un UIAlertView con un spinner. A veces, algo sale mal cuando trato de agregar la ruleta en el centro de la alerta, generalmente cuando había otra alerta justo antes de esta (no es exactamente una regla, pero así es como noté que falla).UIActivityIndicatorView no se muestra correctamente en UIAlertView
En parte resolví este error al retrasar la creación de la ruleta. Aquí es cómo lo hago (alerta es un miembro UIAlertView):
Este es el código de viewDidLoad:
alert = [[[UIAlertView alloc] initWithTitle:@"Loading..." message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
[alert show];
[self performSelector:@selector(addSpinner) withObject:nil afterDelay:0.5f];
Y éste es mi addSpinner función:
- (void) addSpinner{
UIActivityIndicatorView *indicator2 = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator2.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height - 50);
[indicator2 startAnimating];
[alert addSubview:indicator2];
[indicator2 release];
}
Esta solución funciona siempre, pero realmente no me gusta cómo se hace. Aunque mostrar la ruleta medio segundo después de que la alerta aparece no es tan molesto, debe haber una forma mejor de manejar esto. No soy un experto en iOS, ni soy un programador senior, pero ¿no puedo usar un evento? Algo así como "cuando la alerta se muestra realmente, vaya a la función addSpinner"? No tengo idea de cómo hacer esto, y no pude encontrar mucha ayuda en la web ...
Espero que alguien me puede ayudar! Gracias.
Gracias por eso, se ve bastante bien, puedo intentar usarlo. No puedo marcar su respuesta como mi "respuesta aceptada", ya que en realidad no resuelve el problema :) – rdurand
sin problemas :) .. usted puede simplemente votar, si fue útil :) – waheeda
He agregado un poco código para resolver su problema, espero que ayude. – waheeda