reloj - ¿Cómo mostrar una superposición de indicador de progreso/HUD en iPhone?
tiempo en pantalla iphone (5)
Acabo de publicar una versión mía de HUD: https://github.com/y0n3l/LGViewHUD
Puede obtener este resultado muy fácilmente:
#import "LGViewHUD.h"
....
LGViewHUD* hud = [LGViewHUD defaultHUD];
hud.activityIndicatorOn=YES;
hud.topText=@"The longer....";
hud.bottomText=@"The better !";
[hud showInView:self.view];
Una vez finalizada la tarea, simplemente invocar
[[LGViewHUD defaultHUD] hideWithAnimation:HUDAnimationHideFadeOut];
y eso es !
Quiero mostrar un indicador de progreso en un cuadro semitransparente que flota sobre una vista de tabla. En otras palabras, cuando los contenidos de la tabla se están descargando, quiero que aparezca una etiqueta de "Actualización" sobre ella.
He visto esto en varias aplicaciones en la tienda, especialmente en Facebook (cuando agitas para recargar) y Darkslide.
Mi primer impulso es crear una UIView semitransparente, colocar una UILabel y una UIProgressIndicatorView dentro de ella, y agregarla a la jerarquía de vistas ... ¿pero dónde? Una vista en UIV puede no superponerse con sus hermanos, por lo que no puedo hacer que sea una subvista de la ventana. Tampoco puedo hacer que sea una subvista de la tabla, porque luego se desplazará hacia arriba y hacia abajo con el contenido de la tabla.
Pensé en crear un nuevo UIWindow, pero la documentación básicamente dice que no .
Sé que los CALayers pueden superponerse entre sí, por lo que sería una opción, pero no puedo poner un indicador de progreso dentro de un CALayer, ¿puedo? ¿Debo pasar mi propio indicador de progreso que anima un CALayer en lugar de una UIView?
No estoy interesado en escuchar acerca de las API privadas .
Edit: La pregunta se basa en una suposición errónea. Es posible que NSViews (en Mac OS X) no se superponga, pero puede que UIViews en el iPhone.
Cualquier objeto que viva en su MainWindow.xib puede obtener acceso a la ventana de la aplicación a través de una salida. El delegado de la aplicación en los proyectos estándar ya lo tiene, pero probablemente querrá agregar la salida a su controlador de vista que necesita mostrar la superposición de progreso.
Ya que en UIKit, la UIWindow es una UIView (a diferencia de NSWindow vs. NSView en Cocoa), simplemente puede agregar su vista de progreso como una subvista de la ventana:
[window addSubview:progressView];
progressView cubrirá toda la interfaz de usuario de la aplicación.
Este ejemplo utiliza la técnica para desvanecer la imagen de presentación Default.png:
http://michael.burford.net/2008/11/fading-defaultpng-when-iphone-app.html
Con respecto a la edición reciente, a partir de MacOS X 10.5 Leopard NSView es una coincidencia determinante (siempre se pueden superponer, solo se obtienen resultados indeterminados), aunque tiene un orden diferente de frente a atrás dependiendo de si la vista que contiene está respaldada por capas. o no. Es muy probable que este sea un efecto secundario de la integración de CALayers en el sistema de vista OS X.
Definitivamente puedes superponer vistas. Solo agregue la superposición transparente como una subvista en la vista de tabla.
De la documentación de UIView:
Los objetos UIView se organizan dentro de un objeto UIWindow, en una jerarquía anidada de subvistas. Los objetos principales en la jerarquía de vistas se denominan superviews, y los secundarios se denominan subvistas. Un objeto de vista reclama una región rectangular de su vista de supervisión adjunta, es responsable de todos los dibujos dentro de esa región y también es elegible para recibir eventos que ocurran en ella. Las vistas de hermanos pueden superponerse sin ningún problema, lo que permite la ubicación de vistas complejas.
Respuesta: Las manzanas son bastante impresionantes. http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html
Actualmente estoy sobre colocando vistas transparentes (al menos en la parte posterior de una servilleta en este punto). Puede usarlos para mantener presionados los botones del menú, moverlos al espacio 3D, solo obtener nueces.
Quiero decir, ¿es esto un tratado religioso de o qué? Cosas increíbles de los chicos de NEXT:
Los objetos UIView se organizan dentro de un objeto UIWindow, en una jerarquía anidada de subvistas. Los objetos principales en la jerarquía de vistas se denominan superviews, y los secundarios se denominan subvistas. Un objeto de vista reclama una región rectangular de su vista de supervisión adjunta, es responsable de todos los dibujos dentro de esa región y también es elegible para recibir eventos que ocurran en ella. Las vistas de hermanos pueden superponerse sin ningún problema, lo que permite la ubicación de vistas complejas.
También están los famosos MBProgressHUD y SVProgressHUD
Son del mismo tipo que el HUD de @yonel.
Ejemplo
[SVProgressHUD show];
[SVProgressHUD dismiss];
MBProgressHUD parece ahora más popular (si nos basamos en estrellas Github)