Domanda

Ho un app iPad dove ho un controller della vista che è l'UIGestureRecognizerDelegate per una serie di UIGestureRecognizers. Ho implementato il seguente metodo di 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;

}

La mia configurazione è un EAGLView a schermo intero con un UIToolbar in cima al EAGLView. C'è un UIBarButtonItem sulla barra degli strumenti. L'idea qui è che toccando due volte ovunque alterna l'aspetto della barra degli strumenti. Tutti gli altri gesti devono verificarsi sul EAGLView.

Il mio problema è che i rubinetti direttamente sul UIBarButtonItem spettacolo touch.view di essere l'UIView sottoclasse UIToolbarTextButton che è documentato e non può essere introspected.

Eh?

Qualcuno può suggerire un lavoro in giro, preferibilmente che usi la bontà introspettiva di una qualche forma?

Grazie,
Doug

Grazie,

Doug

È stato utile?

Soluzione

È possibile calcolare il .superview più volte fino a raggiungere un'UIToolbar, EAGLView o nil.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top