en mi aplicación Tengo algunas animaciones. por ejemplo, tengo un botón en mi menú principal y al hacer clic en él comienza la animación (como mover un lugar, etc.) y al final de la animación se navega a otra página. Lo que necesito es deshabilitar la interacción del usuario durante la animación. porque durante la animación, si presiono el punto de inicio de mi botón, la página que se supone que se navega se abre dos veces. En resumen, si no dejo ningún tipo de interacción del usuario durante la animación, mi problema se resolverá. ¿Cómo puedo hacer eso?iphone development: deshabilitar la interacción del usuario durante la animación
Respuesta
Antes de animación:
self.view.userInteractionEnabled = NO;
y en el bloque finalización de animación:
self.view.userInteractionEnabled = YES;
si el usuario tiene dos botones en la vista, entonces ¿qué ...? – Rajneesh071
deshabilitar la vista deshabilitará todas las subvistas – swebal
Sí, tiene razón .... pero quiero decir que si el usuario tiene dos botones y quiere animación en ambos botones al mismo tiempo ... entonces, ¿cómo es posible de acuerdo con su código ... .. así que sugiero deshabilitar el botón es mejor enfoque .... – Rajneesh071
Simple, puede establecer setUserInteractionEnabled
en NO
antes de que comience la animación, y en el controlador de finalización de animaciones establecerlo de nuevo en YES
.
[myObject setUserInteractionEnabled:NO];
[UIView animateWithDuration:1.0 animations:^{
[myObject setTransform:CGAffineTransformMakeTranslation(100, 100)];//some animation
}completion:^(BOOL done){
if (done){
[myObject setUserInteractionEnabled:YES];
}
}];
yourView.userInteractionEnabled = NO;
[UIView animateWithDuration:1 animations:^
{
//animations here
}
completion:^(BOOL finished)
{
yourView.userInteractionEnabled = YES;
}];
Desactivar userIntrection de botón.
Btn.userInteractionEnabled = NO;
Usted no tiene que cortar un poco con el bloque de terminación - hay una opción de animación que hace precisamente esto exactamente:
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction
animations:^{
// animations here
}
completion:nil];
Si ha configurado el UIViewAnimationOptionAllowUserInteraction
, a continuación, la interacción del usuario habría sido permitido.
La pregunta era cómo desactivar la interacción de usuario para todo durante la animación. Esta opción de animación permite la interacción del usuario para la vista que se anima. – AWrightIV
Esto podría ayudar:
// for ignoring event
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
Código se verá así:
[UIView animateWithDuration:1.0 animations:^{
//some animation
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
}
completion:^(BOOL done){
if (done){
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
}
}
];
Exactamente lo que necesitaba, ¡gracias! – iceydee
Para desactivar eventos táctiles en una vista,
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
Para habilitar eventos táctiles en una vista
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
Tenía controlador de vista con iconos que abren páginas. Si el usuario estaba tocando rápidamente icon1 e icon2, se abrieron las 2 páginas.
para evitar que tenía este 2 líneas al inicio del evento del grifo este asegúrese de que la suceda lo que sea, el endIgnoring llamarán
-(void) on_image_tap:(UITapGestureRecognizer *) tapGesture
{
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] performSelector:@selector(endIgnoringInteractionEvents) withObject:nil afterDelay:0.5f];
- 1. Cómo deshabilitar la interacción del usuario en una vista personalizada
- 2. La interacción del usuario con UIView y animación bloques de terminación
- 3. MBProgressHUD deshabilitar la interacción con UITableViewController
- 4. UIButton no interactuando durante la animación
- 5. desactivar la interacción táctil en UITableView
- 6. AppleScript devuelve "No se permitió la interacción del usuario"
- 7. contenidos UIScrollView no permiten la interacción del usuario
- 8. bloqueo de la interacción del usuario con vistas subyacentes
- 9. Suspender el diseño durante la interacción de DOM
- 10. Interacción del usuario en un UIImageView
- 11. Accediendo a la posición actual de UIView durante la animación
- 12. No se puede tocar durante la animación (Animación de bloque)
- 13. UIView touchesbegan no responde durante la animación
- 14. Escalamiento de UIView durante la animación
- 15. Android: mantener actividad durante la animación
- 16. explícitamente deshabilitar la animación UIView en iOS4 +
- 17. aplicación para el iPhone: Preguntas sobre la interacción entre CLLocationmanager y MKMapView (que muestran la ubicación del usuario actual)
- 18. Desarrollo de iPhone: restrinja la interacción del usuario con la aplicación y muestre un indicador de progreso
- 19. ¿Deshabilitar el registro durante la prueba manage.py?
- 20. Interacción del iPhone entre la aplicación para PC y iPhone usando USB
- 21. layoutSubviews durante una animación?
- 22. ¿Cómo controlo el color de fondo durante la transición de animación de la vista invertida del iPhone?
- 23. Deshabilitar animación al mover CALayers
- 24. iPhone Development Environment (desde cero)
- 25. Animación de iPhone UIView Desactiva la subvista UIButton
- 26. Cómo cambiar la velocidad durante la animación CABasicAnimation
- 27. La interacción del usuario a veces arruina las solicitudes jQuery ajax en UIWebView
- 28. Cocoa webView - Desactivar toda interacción
- 29. Apple/iPhone Development IDE Preferences?
- 30. la comprensión del comportamiento Driven Development (BDD)
¿Cómo se anima la vista? ¿Método tradicional o usando bloques? –
@ NSPostWhenIdle .. ¿Por qué está mal o stackOverflow no lo permite? – Rajneesh071
ok señor ... la próxima vez me ocuparé de eso, ... :) – Rajneesh071