Frage

Die Funktion touchesMoved verhält sich in iPhone und Simulator anders.

Das Wiederholungsintervall (Aktualisierungsrate) der Funktion touchesMoved ist viel schneller als Simulator. Gibt es eine Möglichkeit, mit dem Unterschied umzugehen?

War es hilfreich?

Lösung

Oft finden die Menschen ein Problem, weil sie im berührungsmischen Handler etwas Intensives tun und wenn Ereignisse sehr häufig ankommen, lässt die Schnittstelle zurückbleiben.

Eine relativ einfache Möglichkeit, damit umzugehen, ist: Speichern Sie zunächst die Berührungsposition in einer Variablen, die die Position des Fingers darstellt.

Kehren Sie sofort vom berührungsmischen Handler zurück. Erstellen Sie ein NSTIMER-Objekt und setzen Sie Ihren Ansichtscontroller als Delegierter ein und machen Sie das, was das bewegende Verhalten von Umbau/Ansicht früher in Ihrem berührungsmischen Handler befand. Daher erhalten Sie unabhängig von der Zeit zwischen berührungsgesteuerten Ereignissen eine nahezu ständige Bewegung.

Wenn Sie wirklich fortgeschritten sind, können Sie einen benutzerdefinierten NSRunloop verwenden, anstatt einen Timer zu verwenden, aber das ist mehr als ich hier erklären kann :) Die allgemeine Idee ist: Tun Sie nicht alles im Touch Event -Handler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top