Ответ 1
if ([touch.view.superview isKindOfClass:[UIToolbar class]]) return FALSE;
Вот как я заработал. Супервизор - это UIToolbar, возможно UIBarButtonIttem
- это вид.
Здравствуйте, у меня есть представление opengl, и у меня есть панель вкладок. Я использую распознаватель крана, чтобы использовать различные 3D-объекты на экране. На панели вкладок у меня есть кнопка, но она не работает, потому что распознающий кран также использует эти краны. Как это остановить? Я уже пробовал это:
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[UIBarButtonItem class]]) return FALSE;
return TRUE;
}
Я думаю, что я как-то сравниваю неправильную классификацию, потому что, когда я отлаживаю, он всегда возвращает TRUE.
if ([touch.view.superview isKindOfClass:[UIToolbar class]]) return FALSE;
Вот как я заработал. Супервизор - это UIToolbar, возможно UIBarButtonIttem
- это вид.
Или вы можете просто сделать [singleTap setCancelsTouchesInView:NO]
. Пример:
UITapGestureRecognizer *singleTap = [
[UITapGestureRecognizer alloc]
initWithTarget: self
action: @selector(yourSelector:)
];
[singleTap setCancelsTouchesInView:NO];
[[self view] addGestureRecognizer: singleTap];