/ / iOS - Mehrere Tippen Gestenerkennung - ios, tippen Sie auf, uitapgesture_recognizer

iOS - Mehrere Tippen Gestenerkenner - ios, tippen Sie auf, uitapgesture_recognizer

In meiner Anwendung muss ich einfache, doppelte und dreifache Taps erkennen. Also verwende ich UITapGestureRecognizer. Ich benutze den folgenden Code:

    UITapGestureRecognizer *oneTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGestureOnAnimal:)];
oneTap.numberOfTapsRequired = 1;

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTapGestureOnAnimal:)];
doubleTap.numberOfTapsRequired = 2;
[doubleTap requireGestureRecognizerToFail:oneTap];

UITapGestureRecognizer* tripleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTripleTapGestureOnAnimal:)];
tripleTap.numberOfTapsRequired = 3;
[tripleTap requireGestureRecognizerToFail:doubleTap];

[self addGestureRecognizer:oneTap];
[self addGestureRecognizer:doubleTap];
[self addGestureRecognizer:tripleTap];

Das Problem ist jedoch, dass es immer nur Einzel- und Doppel-Taps erkennt. Es erkennt überhaupt keinen Dreifach-Tipp .... kann jemand den Fehler aufzeigen, den ich mache, um Dreifach-Taps zu erkennen?

Antworten:

17 für die Antwort № 1

Überprüfen Sie mit diesem,

[oneTap requireGestureRecognizerToFail:doubleTap];
[oneTap requireGestureRecognizerToFail:tripleTap];
[doubleTap requireGestureRecognizerToFail:tripleTap];

Du hast die Wasserhähne in den Methoden und dir geschaltetmachten nicht die zweite Zeile oben. Idealerweise sollte ein Tipp nur dann erkannt werden, wenn Doppeltippen und Dreifachtippen fehlschlagen. Ein Doppeltippen sollte erkannt werden, wenn der Dreifachabgriff fehlschlägt.


0 für die Antwort № 2

Ändern Sie Ihre 2 requireGestureRecognizerToFail-Aufrufe zu:

[oneTap requireGestureRecognizerToFail:tripleTap];
[oneTap requireGestureRecognizerToFail:doubleTap];
[doubleTap requireGestureRecognizerToFail:tripleTap];