recognizer iphone objective-c button conflict uigesturerecognizer

iphone - ¿Cómo evitas que UITapGestureRecognizer atrape TODOS los grifos?



tap gesture recognizer swift 4 (2)

O simplemente puede hacer [singleTap setCancelsTouchesInView:NO] . Ejemplo:

UITapGestureRecognizer *singleTap = [ [UITapGestureRecognizer alloc] initWithTarget: self action: @selector(yourSelector:) ]; [singleTap setCancelsTouchesInView:NO]; [[self view] addGestureRecognizer: singleTap];

Hola, tengo una vista OpenGL y en eso tengo una barra de pestañas. Estoy usando un reconocedor de tap para tocar diferentes objetos 3d en la pantalla. En la barra de pestañas, tengo un botón, pero no funciona porque el reconocedor de tap capta estos toques también. ¿Cómo paro esto? Ya he intentado esto:

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([touch.view isKindOfClass:[UIBarButtonItem class]]) return FALSE; return TRUE; }

Creo que de alguna manera estoy comparando clases erróneas porque cuando depuro, siempre devuelve TRUE.


if ([touch.view.superview isKindOfClass:[UIToolbar class]]) return FALSE;

Así es como lo hice funcionar. La supervista es una UIToolbar, probablemente UIBarButtonIttem es una vista después de todo.