2015-09-22 6 views
7

Ich frage mich, ob ich kontinuierlich wechselnden Druck der Benutzereingabe auf dem iPhone 6s erkennen kann.Wie arbeite ich mit 3D Touch in iOS 9? Wird das Ereignis ausgelöst, wenn sich der Druck ändert?

Mit der einfachen Berührung ist es offensichtlich, vom UIResponder können Sie in touchesBegan und TouchesMoved einhaken und Sie haben die Koordinaten jedes Mal, wenn der Benutzer den Bildschirm berührt und wenn er seinen Finger bewegt, können Sie die aktuelle Position haben jedes Update

Allerdings bin ich mir nicht sicher, wie die neue: force-Eigenschaft funktioniert. Wenn Sie die "Kraft" in touchesBegan lesen, erhalten Sie nicht einen minimalen Druckwert, der bei der Initiierung der Berührung erkannt wurde?

Gibt es eine Möglichkeit, den Force-Wert zu aktualisieren, wenn er sich ändert, genau wie die touchesMoved? Vielleicht gibt es eine Methode wie "forceChanged"?

+0

Haben Sie es versucht? Höchstwahrscheinlich erhalten Sie ein neues 'touchesMoved:' -Ereignis, wenn sich die Kraft ändert. Schreiben Sie eine einfache Test-App und protokollieren Sie die Werte und sehen Sie, was Sie bekommen. – rmaddy

+0

Wie versucht man es? Der Simulator unterstützt keine Möglichkeit, Kraft für Berührung zu simulieren, und das Gerät wird immer noch nicht freigegeben: S – mrtksn

+1

Es gibt einige kraftbezogene Menüoptionen im Simulator, die aktiv werden, wenn Sie den Simulator auf das iPhone 6s/6s + einstellen. – rmaddy

Antwort

11

Vom iOS 9.1 Release Notes

Auf 3D-Touch-fähige Geräte, Touch-Druckänderungen verursachen touchesMoved: genannt werden.

Apps sollten darauf vorbereitet sein, Touch-Move-Ereignisse ohne Änderung der x/y-Koordinaten zu empfangen.

Dies bedeutet, dass ein touchesMoved: Rückruf entweder eine kontinuierliche Änderung in force oder Ort oder beides anzeigt!

Hoffentlich wird diese Information eines Tages es in die UITouch documentation machen.