你如何阻止UITapGestureRecognizer捕获每一个?

gyo*_*dor 30 iphone conflict objective-c button uigesturerecognizer

您好我有一个opengl视图,我有一个标签栏.我正在使用点击识别器来点击屏幕上的不同3D对象.在标签栏中我有一个按钮,但它不起作用,因为水龙头识别器也捕获了这些水龙头.我怎么阻止这个?我已经尝试过了:


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

我想我在某种程度上比较了错误的classess,因为当我调试它时总是返回TRUE.

i--*_*i-- 33

或者你可以做到[singleTap setCancelsTouchesInView:NO].例:

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


gyo*_*dor 28

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

这就是我开始工作的方式.superview是一个UIToolbar,毕竟可能UIBarButtonIttem 是一个视图.