Ich möchte auf eine UIView tippen und ziehen und diese Ansicht folgt meinem Finger, einfach genug. Aber der einfachste Weg, dies zu tun, besteht darin, die Objekte in der Mitte auf die Stelle zu setzen, an der das Tippen stattgefunden hat (was ich nicht will). Ich möchte, dass es sich bewegt, als ob du das Objekt überall ergriffen hättest.
Es gab eine sehr nützliche Möglichkeit, dies zu tun, und es war eine Referenz in einem der iTunes U-Videos. Das Skript hat deltaX nicht verwendet, deltaY, um das Bild darunter zu ziehen, wo du es angetippt hast, anstatt es unter deinem Finger zu zentrieren, aber ich kann mich nicht erinnern, was dieser Code war!
Hat jemand einen Hinweis auf diesen Code? Oder haben Sie vielleicht eine effiziente Möglichkeit, UIViews unter einem Finger zu bewegen, ohne das Konzept von uiview.center = tap.center zu haben?
Der folgende Code ist ein Beispiel für eine einfache Gestenerkennungsfunktion, die die Bewegung von Anzeigefeldern / Ansichten ermöglicht. Anstatt das Zentrum zu modifizieren, modifizierst du den Ursprungspunkt [grundsätzlich durch Setzen eines neuen Rahmens für die Zielansicht].
Sie können dies in Ihrer Situation optimieren, so dass Sie nicht in die gesten.Ansicht ... usw.
hineingehen müssen %Vor%Swift 4:
%Vor% Hier ist der Code aus Apples MoveMe-Projekt, der dazu in der touchesMoved
-Methode verwendet wird. Es erlaubt dem UIView
( PlacardView
) die Berührung zu sehen und sich dorthin zu bewegen, wohin die Berührung des Benutzers geht. Hoffe, das hilft.
Sie können sowohl den Berührungspunkt (T) als auch die aktuelle Position der Ansicht (O) speichern. In touchMoved können Sie es basierend auf dem neuen Punkt verschieben, indem Sie (O-T) hinzufügen.