您好我有一个opengl视图,我有一个标签栏。我正在使用点击识别器来点击屏幕上的不同3D对象。在标签栏中我有一个按钮,但它不起作用,因为水龙头识别器也捕获了这些水龙头。我怎么阻止这个?我已经尝试过了:
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UIBarButtonItem class]]) return FALSE;
return TRUE;
}
我认为我在某种程度上比较错误的classess,因为当我调试它时总是返回TRUE。
答案 0 :(得分:32)
或者你可以[singleTap setCancelsTouchesInView:NO]
。示例:
UITapGestureRecognizer *singleTap = [
[UITapGestureRecognizer alloc]
initWithTarget: self
action: @selector(yourSelector:)
];
[singleTap setCancelsTouchesInView:NO];
[[self view] addGestureRecognizer: singleTap];
答案 1 :(得分:27)
if ([touch.view.superview isKindOfClass:[UIToolbar class]]) return FALSE;
这就是我开始工作的方式。 superview是一个UIToolbar,毕竟可能UIBarButtonIttem
is a view。