Iphone 手势识别器:shouldReceiveTouch:实现失败

Iphone 手势识别器:shouldReceiveTouch:实现失败,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,如果所接触的视图属于某些类,即UIButton和uiBarButtonim,我尝试忽略我的手势识别器,使用以下方法: - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { NSLog(@"%@", touch.view); if ([touch.view isKindOfClass:[UIButton class]]){

如果所接触的视图属于某些类,即UIButton和uiBarButtonim,我尝试忽略我的手势识别器,使用以下方法:

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

  NSLog(@"%@", touch.view);

  if ([touch.view isKindOfClass:[UIButton class]]){
    return NO;
  } else if ([touch.view isKindOfClass:[UIBarButtonItem class]]){
    return NO;
  }
  return YES; // handle the touch
}
这对UIButton非常有用。这对维吾尔人来说是行不通的。当触碰UIBarbuttonite时,我的NSLog结果如下:

<UIToolbarTextButton: 0x7b8f500; frame = (4 0; 60 40); opaque = NO; layer = <CALayer: 0x7b8f900>> 2012-06-26 12:09:48.021 
我已尝试将[UIBarButtonItem类]更改为[UIToolBarTextButton类],但由于这是一个未记录的类,我无法执行此操作。还有别的办法吗


谢谢。

如果您的UIBarButtonim位于UINavigationBar中,那么您需要对UINavigationBar进行子类化并实现另一个

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

为了抓住这个手势。可能还有其他方法可以做到这一点。

你试过UIBarItem吗?我刚试过,似乎也不管用。试着忽略整个酒吧!!!