web-dev-qa-db-ja.com

UITapGestureRecognizerがすべてのタップをキャッチしないようにするにはどうすればよいですか?

こんにちは私はopenglビューを持っており、その上にタブバーがあります。タップレコグナイザーを使用して、画面上のさまざまな3Dオブジェクトをタップしています。タブバーにボタンがありますが、タップ認識機能がこれらのタップもキャッチするため、機能しません。どうすればこれを止めることができますか?私はすでにこれを試しました:


- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
  if ([touch.view isKindOfClass:[UIBarButtonItem class]]) return FALSE;
  return TRUE;
}

デバッグすると常にTRUEが返されるため、間違ったクラスを比較していると思います。

30
gyozo kudor

または、[singleTap setCancelsTouchesInView:NO]。例:

UITapGestureRecognizer *singleTap = [
    [UITapGestureRecognizer alloc]
    initWithTarget: self
    action: @selector(yourSelector:)
];
[singleTap setCancelsTouchesInView:NO];
[[self view] addGestureRecognizer: singleTap];
32
i--
 if([touch.view.superview isKindOfClass:[UIToolbar class]])はFALSEを返します; 

これが私がそれを機能させる方法です。スーパービューはUIToolbarであり、おそらくUIBarButtonIttemビューです 結局のところ。

27
gyozo kudor