In meiner App habe ich die neuen Gestenerkenner hinzugefügt, die im 3.2 SDK verfügbar sind. Alles scheint korrekt zu funktionieren und die Reaktionszeit auf dem Bildschirm war sehr schnell. Aber aus irgendeinem Grund, wenn ich requireGestureRecognizerToFail
zu einigen meiner Gesten hinzufüge, gibt es eine sehr sichtbare Verzögerung, wenn die Geste ausgelöst wird. Unten ist ein Ausschnitt des Codes, mit dem ich die Gestenerkenner erstelle. Weiß jemand, warum es eine Verzögerung gibt und wie ich es beheben kann? Ich verwende requireGestureRecognizerToFail
, um zu verhindern, dass die Geste SingleTap
ausgelöst wird, wenn der Benutzer DoubleTap
ausführt.
Wenn Sie zwischen einem einfachen und einem doppelten Tippen unterscheiden möchten, müssen Sie lange genug warten, um herauszufinden, dass kein zweites Tippen mehr möglich ist, bevor Sie es als einzelnes Tippen bezeichnen können. Die Alternative wäre, all Ihre einzelnen Antippaktionen so zu gestalten, dass sie asynchron abgebrochen oder rückgängig gemacht werden können, wenn ein Doppeltipp erkannt wird.
Wenn Sie zum Beispiel eine einzelne Seite zum Tippen und zweimaliges Zoomen verwenden, müssen Sie eine Seite animieren, die sich bei einem einzigen Tippen ändert, dann die Animation umkehren und stattdessen zoomen, wenn eine zweite Berührung erkannt wird. Bis dahin kann sich die Ansicht, die den einzelnen Tipp bearbeitet hat, verschoben haben. In den meisten Fällen ist das mehr Mühe und Verwirrung, dann lohnt es sich.
Tags und Links gesture ipad gesture-recognition multi-touch