У меня есть приложение для iPad, где у меня есть контроллер представления, который является UIGestureRecognizerDelegate для ряда UIGestureRecognizer. Я реализовал следующий метод UIGestureRecognizerDelegate:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
// Double tapping anywhere on the screen hides/shows the toolbar
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] == YES) {
if (touch.tapCount == 2) {
self.toolbar.hidden = self.toolbar.isHidden ? NO : YES;
} // if (touch.tapCount == 2)
} // if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] == YES)
// All gestures are ignored unless they happen on the fullscreen EAGLView
if ([touch.view isKindOfClass:[EAGLView class]] == NO) {
return NO;
} // if ([touch.view isKindOfClass:[EAGLView class]] == NO)
return YES;
}
Моя установка - это полноэкранный EAGLView с UIToolbar поверх EAGLView. На панели инструментов есть элемент UIBarButtonItem. Идея здесь заключается в том, что двойное касание в любом месте переключает внешний вид панели инструментов. Все остальные жесты должны выполняться в EAGLView.
Моя проблема заключается в том, что касания непосредственно в UIBarButtonItem показывают, что touch.view является подклассом UIView UIToolbarTextButton, который недокументирован и не может быть подвергнут анализу.
А?
Может ли кто-нибудь предложить обходной путь, предпочтительно с использованием интроспективного совершенства какой-либо формы?
Спасибо
Дуг
Спасибо
Doug