Question

Cela m'a complètement déconcerté!

J'ai un robinet pour Gesture Recognizer afficher / cacher les menus ...

J'ai aussi un Swipe Gesture Recognizer pour le balayage vers la gauche et à droite entre les écrans ...

Je puis ont aussi un MPMoviePlayerController pour la lecture vidéo de retour à l'écran.

Je suis gestureRecognizer:shouldReceiveTouch: et la mise en œuvre excluant tous les UIControls et tout ce qui a le préfixe « MP ».

Le problème est, chaque fois que je Balayez vers la gauche et à droite sur les commandes du lecteur vidéo, le shouldReceiveTouch ne remarque le Tap Gesture Recognizer, pas celui swipe. Il trace également NO correctement, et déclenche encore toujours la méthode swipe.

J'ai essayé de regarder gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer mais c'est juste m'a vraiment confus, car il contient aussi un UIPanGestureRecognizer ... Où cela vient?

S'il vous plaît aider, je suis fatigué et avoir une grande date limite ... et ne peut pas travailler dehors: (

Merci à vous tous!

: - Joe

Était-ce utile?

La solution 2

D'accord, je dois présenter des excuses ... La raison pour laquelle il ne recevait pas de messages shouldReceiveTouch était parce que je ne déclenchaient pas de son délégué !! Quel numpty. Je mettais le délégué pour le geste du robinet, mais pas celui swipe. Maintenant, il est tout beau de travail.

Désolé! : -)

Autres conseils

Je le même problème. Voici ce que je l'ai fait pour résoudre le problème. Dans le [auto DoSomething ...] méthodes que je fais un peu d'animation et si les finitions d'animation il définit l'état activé du dos de YES reconnaisseur. Soyez conscient du fait que vous définissez le dos de reconnaissance correcte activée! (Ici je à (gauche / droite), de sorte que la matrice de gestureRecognizers dispose de 2 entrées.

- (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;
} }];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top