取消iPhone中UIBarbutton上的点击手势

取消iPhone中UIBarbutton上的点击手势,iphone,uibarbuttonitem,uigesturerecognizer,Iphone,Uibarbuttonitem,Uigesturerecognizer,我已将轻触手势识别器添加到视图中。我的视图底部有一个图像和一个UIToolBar,还有几个UIBarButton。我想取消对这些按钮的任何触摸。我正在尝试使用以下方法取消触摸。如何检测触摸是否在工具栏上或任何工具栏按钮上?框架也没有为栏按钮定义 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if (gestureRecog

我已将轻触手势识别器添加到视图中。我的视图底部有一个图像和一个UIToolBar,还有几个UIBarButton。我想取消对这些按钮的任何触摸。我正在尝试使用以下方法取消触摸。如何检测触摸是否在工具栏上或任何工具栏按钮上?框架也没有为栏按钮定义

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {


    if (gestureRecognizer == tapRecognizer) {
  if (touch.view==barbutton/*toolbar or bar button item*/) 
   {
   return NO;   
  }

    }
    return YES;
}

这是假设工具栏和
self.view
位于同一坐标空间中。如果没有,则必须使用UIView的坐标转换方法(
convertPoint:toView:
)使空格匹配。

按钮是第一个响应者,它们的UITuuchup或其他事件将首先触发,不会传播到背景视图

您可以对按钮进行子分类,并让触摸开始/移动/结束:

[self.nextResponder touchesBegan:touches withEvent:event];
让您的backing视图为他们处理所有事件,在这种情况下,您的手势代码应该可以工作

[self.nextResponder touchesBegan:touches withEvent:event];