2011-08-18 14 views
5

Bien, tengo una viewA con la vista subViewB. Ambos tienen un gestureRecognizer asignado a ellos. Ahora estoy usandoUIGestureRecognizer Detection Order

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

ser capaz de llamar a los dos al mismo tiempo. Ahora vamos a decir que si gestureRecognizer se activa, se llama

NSLog(@"This is..."); 

Y si otherGestureRecognizer se activa que llama

NSLog(@"Sparta!"); 

El problema es que si ambos gestureRecognizers se activan al mismo tiempo, no hay orden en el que se les llama, por lo que a veces

NSLog(@"Sparta!"); 

se llama primero y, a veces, es al revés. ¿Hay una manera de asegurarse de que

NSLog(@"This is..."); 

siempre es llamado por primera vez?

Respuesta

-1

Terminé bajando la duración mínima de la prensa del UIGestureRecognizer que debería llamarse primero solo un milisegundo, que hizo el trabajo

0

¿Podría darnos una explicación más de lo que está tratando de lograr? Está tratando de hacer que su subvista sea el primer respondedor, pero ¿su parentview también debe responder después de eso? ¿Para que tengas ambas respuestas pero en un orden fijo?

Si es así, puede hacer un reconocimiento de gestos en ambas vistas. verifique la primera respuesta (que debería ser su subvista, supongo) y luego haga un protocolo delegado para que su padre responda a este "cambio" también.

De todos modos, una explicación más de su parte podría ser útil para estar completamente seguro.