Deshabilitar todas las inputs mientras gira UIActivityIndicatorView

¿Cómo puedo desactivar todas las inputs mientras el UIActivityIndicatorView está girando?

Gracias

Puedes llamar a beginIgnoringInteractionEvents cuando beginIgnoringInteractionEvents el spinner

 [[UIApplication shanetworkingApplication] beginIgnoringInteractionEvents]; 

y endIgnoringInteractionEvents cuando lo detiene.

 [[UIApplication shanetworkingApplication] endIgnoringInteractionEvents]; 

Solo asegúrese de que su código siempre llegue al punto en que llame a endIgnoringInteractionEvents , de lo contrario, su aplicación se congelará (desde el punto de vista de los usuarios).

Solo una adición a la respuesta de rokjarc. Aquí un ejemplo de perro guardián para mantener viva la aplicación. Puede llamar siempre con algún intervalo crítico, tal vez 10 seg. Y si necesita habilitarlo en 10 segundos, simplemente llame al método "habilitar".

 UIWindow * __weak mainWindow; - (void)disableGlobalUserInteractionForTimeInterval:(NSTimeInterval)interval { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ mainWindow = [[[UIApplication shanetworkingApplication] windows] lastObject]; }); [mainWindow setUserInteractionEnabled:false]; if (interval > 0) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(interval * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self enableGlobalUserInteraction]; }); } } - (void)enableGlobalUserInteraction { if (mainWindow) { [mainWindow setUserInteractionEnabled:true]; } } 

En Swift 3.0:

Para deshabilitar la interacción:

 UIApplication.shanetworking.beginIgnoringInteractionEvents() 

Para restaurar la interacción:

 UIApplication.shanetworking.endIgnoringInteractionEvents()