programming framework awesome apple iphone uiview input uinavigationcontroller uiprogressview

iphone - framework - swift libraries



iPhone: ¿cómo configuro una "vista bloqueadora" de tamaño de ventana clara? (2)

Puede crear una UIWindow transparente con un windowLevel > 1.

Siento que esto debería ser obvio para mí, pero por alguna razón no puedo resolver esto. Tengo una interfaz de navegación con barra de navegación, barra de herramientas y vista principal. En ocasiones, el usuario realiza una acción que hace que aparezca un indicador de progreso en el medio de la vista.

Mientras que el indicador de progreso (que es una UIView personalizada) gira en el centro, no quiero entrada táctil para poder acceder a cualquiera de las interfaces subyacentes (vista principal, barra de navegación, barra de herramientas, etc.). Pero esto no parece trivial.

He intentado (y fallé) crear una vista simple cuyo único trabajo es tragar la entrada táctil y usarla como una subvista de ventana. No hay dados, nunca recibe los eventos táctiles (y sí, tiene userInteractionEnabled). He intentado usarlo como un controlador de vista modal transparente, pero esos no parecen ser nunca transparentes.

¿Pensamientos? ¿Qué me estoy perdiendo?

¡Gracias!


Puede detener la aplicación de aceptar eventos de interacción con

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

Y luego comienza a tomar eventos de nuevo

[[UIApplication sharedApplication] endIgnoringInteractionEvents];

Pero sería extremadamente cuidadoso con eso ya que evita que el usuario interactúe con su aplicación.

Sugerir otra ruta Podría mostrar un UIAlertView creado con solo el método init para albergar el indicador de progreso en el medio de él. Si usa el método init, no habrá botones para que el usuario interactúe. Luego, cuando haya terminado, puede descartar la vista de alerta. Si desea dar al usuario una forma de cancelar la acción, incluso puede usar un botón en la vista de alerta para cancelarla.