Frage

Das hat mich völlig ratlos!

Ich habe eine Tap Gestenerkenner für Ein- / Ausblenden Menüs ...

Ich habe auch eine Swipe-Geste Recognizer für links Streichen nach und rechts zwischen den Bildschirmen ...

ich dann auch eine MPMoviePlayerController haben für auf dem Bildschirm zurück Video abspielen.

Ich bin der Umsetzung gestureRecognizer:shouldReceiveTouch: und unter Ausschluss aller UIControls und alles, was das Präfix „MP“ hat.

Das Problem ist, wenn ich links Swipe und rechts auf den Video-Player Kontrollen bemerkt der shouldReceiveTouch nur die Tap Gestenerkenner, NICHT der Swipe ein. Es zeichnet auch NO richtig, und dennoch löst die Swipe-Methode.

Ich habe versucht, auf gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer suchen, aber das ist nur wirklich verwirrt mich, weil es auch eine UIPanGestureRecognizer enthält ... Wo kam das her?

Bitte Hilfe, ich bin müde und habe eine große Frist ... und kann es nicht funktionieren: (

Vielen Dank!

- Joe

War es hilfreich?

Lösung 2

Okay, ich muss mich entschuldigen ... Der Grund, es nicht war, war shouldReceiveTouch Nachrichten zu empfangen, weil ich nicht seine Delegierten Einstellung !! Was für ein numpty. Ich war die Einstellung der Delegierten für den Hahn Geste, aber nicht die Swipe ein. Nun, es ist alles gut funktioniert.

Es tut uns leid! : -)

Andere Tipps

würde ich das gleiche Problem. Hier ist, was ich tat, um das Problem zu überwinden. In der [self doSomething ...] Methoden habe ich einige Animationen und wenn die Animation beendet es setzt den aktivierten Zustand des Erkenners auf YES zurück. Seien Sie sich der Tatsache bewusst, dass Sie die richtige Erkennungs wieder auf enabled gesetzt! (Ich habe hier bis (links / rechts), so dass die gestureRecognizers Array 2 Einträge.

- (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;
} }];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top