iPhone - Objekt Verschieben Sie entlang berühren und ziehen Sie Weg
Ich entwickle eine einfache animation, wo ein UIImageView
bewegt sich entlang einer UIBezierPath
, jetzt möchte ich die Bereitstellung von Benutzer-interation von der bewegten UIImageView
so dass der Benutzer führen kann, die UIImageView
durch berühren der UIImageView
und ziehen Sie die UIImageview
rund um den Bildschirm.
Sir ich habe das gleiche problem wie du haben bitte helfen Sie mir, wenn Sie tun, was.
InformationsquelleAutor Pete | 2012-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
So dass Sie möchten, dass der Benutzer in der Lage sein, zu berühren, ein Bild in der Mitte eines keyframe-animation entlang eines gekrümmten Pfades, und ziehen Sie es an eine andere Stelle? Was wollen Sie passieren, um die animation an diesem Punkt?
Haben Sie mehreren Herausforderungen stellen.
Erste ist die Erkennung der touch auf das Objekt, während Sie eine keyframe-animation ist "im Flug".
Zu tun, dass Sie wollen, verwenden Sie die übergeordnete Ansicht layer-presentation layer die hitTest-Methode.
Einer Schicht die Präsentationsschicht stellt den Zustand der layer in jedem gegebenen Augenblick, einschließlich Animationen.
Sobald Sie erkennen, berührt auf Ihre anzeigen, die Sie brauchen, um das Bild der aktuellen Position von der Präsentations-Schicht, die animation anzuhalten, und nehmen Sie über mit einem touchesMoved/touchesDragged basierten animation.
Schrieb ich eine demo-Anwendung, die zeigt, wie zu erkennen, berührt ein Objekt, das animiert wird entlang eines Pfades. Das wäre ein guter Ausgangspunkt.
Werfen Sie einen Blick hier:
Core Animation demo-einschließlich der Erkennung von Berührungen auf einem Blick, während eine animation ist "im Flug".
InformationsquelleAutor Duncan C
Ändern Sie den Rahmen zu der position der Bildanzeige in touchesMoved:withEvent:.
Edit: code
Sollten Sie auch umzusetzen
touchesEnded:withEvent:
undtouchesCanceled:withEvent:
.Die Objekte in der Menge
touches
Sie erhalten in dieser Methode sind UITouches und Sie haben daher die Eigenschaftview
ist der Ansicht, in der die Berührung anfangs aufgetreten ist.ist es möglich für Sie zu teilen, ein kleines code-snippet?
Hinzugefügt von code.
Danke, werde ich versuchen, diese
InformationsquelleAutor dasdom
Einfachste Weg wäre Unterklassen
UIImageView
.Für einfache ziehen nehmen Sie einen Blick auf den code hier (code entliehen Benutzer MHC):
UIView ziehen (Bild und text)
Da Sie wollen, zusammen zu ziehen Bézier-Pfad musst du ändern
touchesMoved:
Was genau Sie tun wollen, in
-(CGPoint) calculatePositionForPoint:(CGPoint)location
ist bis zu Ihnen. Sie könnten beispielsweise berechnen, Stelle in Bézier-Pfad, der am nächsten an
location
. Für einfache test können Sie tun:Auf dem Weg Sie sind gonna haben zu entscheiden, was passiert, wenn der Benutzer Wunder aus zu weit von Ihrem
vorberechnete Bézier-Pfad.
InformationsquelleAutor Rok Jarc