UIScreenEdgePanGestureRecognizer Auslösen mehrerer Male

7

Ich habe den folgenden Code in einem ViewDidLoad auf einem UIViewController:

%Vor%

und der Zweck ist, eine Ansicht auszulösen, wenn eine Geste mit rechter Kante erkannt wird.

%Vor%

Aber ich sehe, dass die "handleRightEdgeSwipe" -Funktion mehrmals ausgelöst wird - manchmal 5 mal, was die Seitenleistenansicht, die gleitend animiert werden sollte, mehrmals in den Flash-Modus verschiebt.

(HINWEIS: Ich habe versucht, auszulösen, dass die Ansicht von einem UIButton aus angezeigt wird, und es funktioniert einwandfrei).

Warum wird die rechte Randgeste mehrmals ausgelöst und wie kann ich sie beheben?

    
motionpotion 07.10.2014, 20:28
quelle

2 Antworten

16

Wie bereits erwähnt, ruft der UIScreenEdgePanGestureRecognizer Ihre Aktion mehrmals auf, wenn sich der Status von GestureRecognizer ändert. Weitere Informationen finden Sie in der Dokumentation zur Eigenschaft state der Klasse UIGestureRecognizer . In Ihrem Fall glaube ich, dass die Antwort, die Sie suchen, darin besteht, zu überprüfen, ob der Status "beendet" ist. Also:

%Vor%     
Brian Redman 10.10.2014 22:53
quelle
3

Diese Geste ist kein Einzelereignis, sondern kontinuierlich.

handleRightEdgeSwipe: wird einmal aufgerufen, wenn sich sender.state ändert oder die Berührung verschoben wird. Du musst UIButton verschieben, abhängig von state und locationInView: der Geste.

    
fluidsonic 07.10.2014 20:32
quelle