para pantalla over modo lectura invidentes ciego accesible accesibilidad iphone ios objective-c uiview uigesturerecognizer

pantalla - voice over iphone 6s



Cómo priorizar reconocedores de gestos y toques en una UIView (1)

Parece que necesitas: swipeUpTwoFinger.delaysTouchesBegan = YES;

Al leer la Referencia de clase de UIGestureRecognizer , se implica que la API manejará la priorización de toques y controles de gestos para usted, asegurándose de que sus touchesBegan y los métodos relacionados no se touchesBegan en la vista a menos que los reconocedores de gestos touchesBegan primero:

Una ventana entrega eventos táctiles a un reconocedor de gestos antes de que los entregue a la vista de prueba adjunta al reconocedor de gestos. Generalmente, si un reconocedor de gestos analiza la secuencia de toques en una secuencia multitáctil y no reconoce su gesto, la vista recibe el complemento completo de toques. Si un reconocedor de gestos reconoce su gesto, los toques restantes para la vista se cancelan.

He agregado un gesto de deslizamiento a mi vista, y está funcionando. A través de un registro, cuando hago un solo deslizamiento, el método informa como tal. Sin embargo, mi método touchesBegan también está informando a través de su registro, a pesar de que el método touchesCancelled es, como se esperaba, también recibe un mensaje.

Quiero, y espero, que el gesto reconozca para evitar touchesBegan o touchesMoved de ser llamado.

Así que mi pregunta es: para que el reconocedor de gestos demore los toques en función de su estado, ¿es necesaria una configuración adicional? Los documentos no sugieren nada más si es necesario.

Mi configuración es simple:

swipeUpTwoFinger=[[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doubleSwipeUp:)]autorelease]; swipeUpTwoFinger.direction=UISwipeGestureRecognizerDirectionUp; swipeUpTwoFinger.numberOfTouchesRequired=2; [self addGestureRecognizer:swipeUpTwoFinger];

También probé esta prueba para asegurarme de que un reconocedor haya fallado antes de procesar con touchesBegan (esta prueba no debería ser necesaria si crees lo que dicen los documentos arriba) pero touchesBegan aún está procesando la línea de registro después de esta prueba:

if (swipeUpTwoFinger.state==UIGestureRecognizerStateFailed)