Как вы мешаете UITapGestureRecognizer ловить КАЖДЫЙ тап? - PullRequest
29 голосов
/ 03 февраля 2011

Здравствуйте, у меня есть представление opengl, и на этом у меня есть панель вкладок.Я использую распознаватель касаний, чтобы нажимать различные 3D-объекты на экране.В панели вкладок у меня есть кнопка, но она не работает, потому что распознаватель касаний ловит эти касания тоже.Как мне это остановить?Я уже пробовал это:


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

Я думаю, что я как-то сравниваю неправильный класс, потому что когда я отлаживаю, он всегда возвращает TRUE.

Ответы [ 2 ]

32 голосов
/ 10 июля 2012

Или вы можете просто сделать [singleTap setCancelsTouchesInView:NO].Пример:

UITapGestureRecognizer *singleTap = [
    [UITapGestureRecognizer alloc]
    initWithTarget: self
    action: @selector(yourSelector:)
];
[singleTap setCancelsTouchesInView:NO];
[[self view] addGestureRecognizer: singleTap];
27 голосов
/ 03 февраля 2011
  if ([touch.view.superview isKindOfClass:[UIToolbar class]]) return FALSE;

Вот так я и начал работать. Суперпредставление - это UIToolbar, вероятно, UIBarButtonIttem - это представление .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...