こんにちは私はopenglビューを持っており、その上にタブバーがあります。タップレコグナイザーを使用して、画面上のさまざまな3Dオブジェクトをタップしています。タブバーにボタンがありますが、タップ認識機能がこれらのタップもキャッチするため、機能しません。どうすればこれを止めることができますか?私はすでにこれを試しました:
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UIBarButtonItem class]]) return FALSE;
return TRUE;
}
デバッグすると常にTRUEが返されるため、間違ったクラスを比較していると思います。
または、[singleTap setCancelsTouchesInView:NO]
。例:
UITapGestureRecognizer *singleTap = [
[UITapGestureRecognizer alloc]
initWithTarget: self
action: @selector(yourSelector:)
];
[singleTap setCancelsTouchesInView:NO];
[[self view] addGestureRecognizer: singleTap];
if([touch.view.superview isKindOfClass:[UIToolbar class]])はFALSEを返します;
これが私がそれを機能させる方法です。スーパービューはUIToolbarであり、おそらくUIBarButtonIttem
ビューです 結局のところ。