2012-01-02 12 views
11

UITapGestureRecognizer no funciona para mí, me pregunto si alguien puede ayudar.UITapGestureRecognizer no funciona

Aquí es mi definición de vista:

@interface MainDisplayView : UIView <UIGestureRecognizerDelegate> 

En la implementación, tengo esto en un método que sin duda se está llamando:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(goToPrevious:)]; 
[tapRecognizer setDelegate:self]; 
[tapRecognizer setNumberOfTapsRequired:1]; 
[tapRecognizer setNumberOfTouchesRequired:1]; 
[myView addGestureRecognizer:tapRecognizer]; 

, así como este método:

- (void)goToPrevious:(UITapGestureRecognizer*)recognizer { 
    NSLog(@"GO TO PREVIOUS"); 
} 

Estoy probando en el simulador y haciendo clic en "myView", pero no ocurre nada. ¡Muchas gracias!

Editado el formato del código.

+0

¿Cuándo se llama al código tapRecognizer? ¿Estás seguro de que myView no es nulo? –

+0

debes aceptar la respuesta de Islam Adel en este – d2burke

Respuesta

-1

¿Vinculó la salida de IB con myView? O bien, si está creando vistas a través de un código y tiene otras vistas, asegúrese de que myView se encuentre en la parte superior.

+0

Gracias, ¿cómo me aseguro de que esté en la parte superior? – user1052610

+0

Si agrega AddSubview, lo agrega en la parte superior, siempre y cuando no agregue más vistas después de eso. –

+0

@PhilippeSabourin tiene razón. adicionalmente, puedes asegurarte llamando a '[yourParentView.subviews lastObject]' – denolk

49

asegurarse de que

yourView.userInteractionEnabled = YES;

+0

¡Trabajó para mí! Estaba agregando una vista programáticamente y se olvidó de configurar esto. – rfsbraz

+0

También verifique esto en el guión gráfico para ver el objetivo. –

1

Asegúrese de que ve no es transparente - establecer un color de fondo:

view.backgroundColor = [UIColor whiteColor]; 

reconocedor Gesto tampoco funcionará cuando el alfa de vista está muy cerca 0.0.

Cuestiones relacionadas