2010-05-01 4 views
1

У меня есть приложение для iPad, в котором у меня есть контроллер вида, который является UIGestureRecognizerDelegate для ряда UIGestureRecognizers. Я осуществил следующий метод UIGestureRecognizerDelegate:iPad. UIBarButtonItem имеет недокументированное представление типа UIToolbarTextButton. А?

- (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

Спасибо,

Doug

ответ

3

Вы можете вычислить .superview несколько раз, пока вы не достигнете UIToolbar, EAGLView или nil.

+0

Великие умы думают одинаково ;-). Да, я действительно пришел к этому решению. Немного взломанный, но кажется, что он надежный и действительно работает. Я все еще озадачен, почему кнопка не раскрывает общедоступный вид. У меня создалось впечатление, что все видимое - это какой-то вкус UIView. Нет? – dugla

+0

@dugla: Потому что Apple не хочет, чтобы люди путались с содержимым UIToolbar напрямую, я думаю. – kennytm

Смежные вопросы