Angenommen, ich verfolge gerade eine Ziehgeste. In meinem Event-Handler verwende ich einen Schwellenwert, um zu bestimmen, wann der Ziehvorgang zu einer Aktion führt. Wenn der Schwellenwert überschritten wird, möchte ich angeben, dass die Ziehgeste beendet wurde.Wie kann ich einen UIGestureRecognizer programmatisch beenden/zurücksetzen?
Das einzige, was ich in der Dokumentation finden kann, ist diese Linie here:
Wenn Sie diese Eigenschaft ändern, um NO während ein Gestenerkenner ist derzeit eine Geste zu erkennen, einen abgebrochenen die Gestenerkenner Übergänge zu Zustand. So
:
if (translation.y > 100) {
// do action
[self doAction];
//end recognizer
sender.enabled = NO;
sender.enabled = YES;
}
Dies funktioniert, aber es sieht aus wie könnte es eine sauberere Weg.
Kennt jemand eine andere Möglichkeit anzugeben, dass eine Geste programmgesteuert beendet wurde? Ich würde etwas wie eine Methode -end:
erwarten, die ein abschließendes Ereignis mit Zustand UIGestureRecognizerStateEnded
erzeugt.
Können Sie beschreiben, was Sie mit der Ziehgeste tun? Ziehen Sie tatsächlich etwas? –
Hi Fábio, ja, ich ziehe horizontal eine Seite eines virtuellen Buches, wenn der Schwellenwert überschritten wird, beginne ich die Animation um eine Seite umzudrehen und möchte dann die Ziehbewegung vorzeitig beenden, so dass ein Ereignis mit Status UIGestureRecognizerStateEnded ist generiert, die alle Aktionen behandelt, die mit dem regulären Ende dieser Geste verbunden sind. – Mattijs