Domanda

Questo mi ha completamente sconcertato!

Ho un Tap Gesture Recognizer per mostrare / nascondere i menu ...

Ho anche un gesto Swipe Recognizer per strisciare a destra ea sinistra tra le schermate ...

Ho poi hanno anche un MPMoviePlayerController per la riproduzione di video sullo schermo.

I sono l'attuazione gestureRecognizer:shouldReceiveTouch: ed escludendo tutti UIControls e tutto ciò che ha il prefisso "MP".

Il problema è che, ogni volta che Swipe a destra ea sinistra sui comandi del lettore di film, l'shouldReceiveTouch accorge solo il Tap Gesture Recognizer, NON il colpo uno. E 'anche tracce NO correttamente, e tuttavia fa scattare ancora il metodo colpo.

Ho provato guardando gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer ma questo è solo mi ha davvero confuso, perché contiene anche un'UIPanGestureRecognizer ... Da dove viene?

Si prega di aiuto, io sono stanco e hanno un grande scadenza ... e non riesco a lavorare fuori: (

Grazie a tutti!

: - Joe

È stato utile?

Soluzione 2

Va bene, devo scusarmi ... La ragione per cui non riceveva messaggi shouldReceiveTouch era perché non ero impostando il suo delegato !! Che numpty. Stavo installando il delegato per il gesto del rubinetto, ma non quello colpo. Ora è tutto bene lavoro.

Sorry! : -)

Altri suggerimenti

che avevo lo stesso problema. Ecco quello che ho fatto per superare il problema. Nel [sé DoSomething ...] metodi faccio un po 'di animazione e se le finiture di animazione si imposta lo stato abilitato della schiena riconoscitore su YES. Essere consapevoli del fatto, che si imposta il corretto torna riconoscitore al abilitato! (Qui ho a (sinistra / destra), quindi l'array gestureRecognizers ha 2 voci.

- (void)handleSwipeGesture:(UISwipeGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded && recognizer.enabled) {
        recognizer.enabled = NO;
        if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
        {
            [self doSomethingInteresting];
        }
        else {
            [self doSomethingElseInteresting];
        }
    }
}
[UIView transitionWithView:self.containerView
          duration:kAnimationDuration
            options:UIViewAnimationOptionTransitionCurlDown
         animations:^{ your animations }
         completion:^(BOOL finished) {
                if (self.containerView.gestureRecognizers.count) {
             ((UISwipeGestureRecognizer *)[self.containerView.gestureRecognizers objectAtIndex:0]).enabled = YES;
} }];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top