2012-06-26 90 views
0

我试图忽视我gestureRecognizer如果视图感动是使用该特定类别(即UIButtonUIBarButtonItem)的:gestureRecognizer:shouldReceiveTouch:执行失败

- (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的伟大工程。它不适用于UIBarButtonItem。我的NSLog结果当UIBarButtonItem被触摸是:

<UIToolbarTextButton: 0x7b8f500; frame = (4 0; 60 40); opaque = NO; layer = <CALayer: 0x7b8f900>> 2012-06-26 12:09:48.021 

我试图改变[UIBarButtonItem class][UIToolBarTextButton class],但因为这是一个无证类,我不能这样做。任何其他方式来做到这一点?

谢谢。

+0

你试过'UIBarItem'吗? –

+0

我刚刚做了,那似乎也没有工作。 –

+0

尝试忽略整个酒吧! – trumpetlicks

回答

0

如果您的UIBarButtonItem处于UINavigationBar的,那么你就需要继承UINavigationBar的,为了赶上了的UIBarButtonItem手势实现另一个

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

。可能有其他方法来实现这一点。