Mostrar un icono de carga mientras se descarga un recurso de red
-
03-07-2019 - |
Pregunta
Estoy tratando de mostrar un ícono de carga mientras mi aplicación para iPhone descarga un recurso de red, pero no puedo entender cómo hacer que se muestre correctamente.
Busqué y encontré algunos detalles sobre la clase UIActivityView
, pero el código fuente de ejemplo disponible no funcionó, y la documentación es un tanto breve.
¿Podría alguien proporcionar un ejemplo simple sobre cómo usar esta clase?
Solución
Suponiendo que tiene configurado un controlador de vista y desea agregarle un UIActivityIndicator
, aquí le explicamos cómo podría hacerlo:
(suponga que tiene una variable miembro llamada indicador
, que puede usar más adelante para limpiar)
Para su interfaz (archivo .h):
UIActivityIndicator *indicator;
Para su implementación (archivo .m):
Inicia la animación
CGRect b = self.view.bounds;
indicator = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle:
UIActivityIndicatorStyleWhite];
//center the indicator in the view
indicator.frame = CGRectMake((b.size.width - 20) / 2, (b.size.height - 20) / 2, 20, 20);
[self.view addSubview: indicator];
[indicator release];
[indicator startAnimating];
Detener la animación
[indicator removeFromSuperview];
indicator = nil;
Otros consejos
La respuesta de Ben se parece bastante a lo que estoy haciendo; es probable que tu suposición sobre el tema sea precisa. ¿Está utilizando NSURLConnection
para manejar su descarga? Si es así, ¿está utilizando la versión síncrona o asíncrona? Si es la versión sincrónica y simplemente está iniciando y deteniendo la animación alrededor de la llamada sincrónica, la interfaz de usuario no se actualizará hasta que haya detenido la animación.