2012-04-17 13 views
6

Quiero añadir a mi UIViewController:Dos UITapGestureRecognizer en el UIView

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
tapGesture.numberOfTapsRequired = 2; 
[self.view addGestureRecognizer:tapGesture]; 
[tapGesture release]; 

UITapGestureRecognizer *tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture2:)]; 
tapGesture2.numberOfTapsRequired = 1; 
[self.view addGestureRecognizer:tapGesture2]; 
[tapGesture2 release]; 

el problema es que el grifo del usuario dos veces los dos métodos son llamados, y quiero que si el usuario hace doble toque sólo la primera (handleTapGesture) será llamado y si hacen un grifo se llamará sólo el segundo (handleTapGesture2)

Respuesta

10

uso este ..

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture)]; 
tapGesture.numberOfTapsRequired = 2; 
[self.view addGestureRecognizer:tapGesture]; 
[tapGesture release]; 

UITapGestureRecognizer *tapGesture2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture2)]; 
tapGesture2.numberOfTapsRequired = 1; 

[tapGesture2 requireGestureRecognizerToFail: tapGesture]; 

[self.view addGestureRecognizer:tapGesture2]; 
[tapGesture2 release]; 
+0

thx por la ayuda, tengo otro problema que tengo botones de la UIViewController y cuando se utiliza el código de los botones de llamada a este método en lugar del método de botón, cualquier idea de por qué ? – MTA

+0

uso este delegado - (BOOL) gestureRecognizer: (UITapGestureRecognizer *) gestureRecognizer shouldReceiveTouch: (UITouch *) toque { \t if ((touch.view == YourButton)) { retorno NO; } return SÍ; } – userar

+0

¿Has verificado este código? – userar

1

puede utilizar el código que he publicado en here en este método requireGestureRecognizerToFail: se utiliza en viewcontroller.m esto va a resolver su problema

Cuestiones relacionadas