2009-07-16 15 views
2

Ich versuche eine Art ziehbar UIView zu beleben, wo das Verhalten in etwa so sein sollte:Wie kann ich mich bewegen und eine UIView mit Berührungen und Wischen entfernen?

  • Ziehen über den Bildschirm nach der Berührung des Benutzers.
  • Erkennen Sie eine Wischberührung und ziehen Sie automatisch mit einer Anfangsgeschwindigkeit und einer negativen Beschleunigung, die nach einiger Zeit stoppt.

So etwas wie um ein Foto herum und dann durch es auf eine Seite des Bildschirms.

Irgendwelche Tipps zu diesem Thema?

Antwort

5

Ein similar question wurde (von mir) vor 3 Wochen gefragt. Obwohl einige der Antworten, die ich erhielt, etwas daneben lagen, war der beste Rat: 1) Studiere Apples MoveMe Beispiel dafür, wie man ein Objekt berührt und es herumzieht. Und 2- Sie "werfen" das Objekt, indem grundsätzlich einen Vergleich der [Touch locationInView: self.view] zum [Touch previousLocationInView: self.view] in touchesEnded (könnte auch einen Verweis auf erste Berührung speichern in touchesBegan aber ich finde, dass weniger hilfreich, wie Benutzer pausieren können), die den Zeitstempel von jedem verwendend, können Sie die Richtung des Wischens (Flick) und Rate der Geschwindigkeit bestimmen und sie benutzen, um Ihre kleine UIView herum zu fliegen. Offensichtlich wollen Sie Kräfte ("Reibung") oder was auch immer zu verlangsamen, so dass es nicht rechts von Ihrem Bildschirm fliegen ...

+0

danke. Wie wende ich diese "Reibungskräfte" an? Soll ich eine CAKeyframeAnimation mit unterschiedlichen Timings verwenden? Wie erzeuge ich diese Timings? Ich bin irgendwie in der Welt der Animationen verloren. – nico

+0

Aktualisierter Link: [MoveMe] (https://developer.apple.com/library/content/samplecode/MoveMe/Introduction/Intro.html) –

0

Ich bin mir nicht sicher. Aber möglicherweise können Sie die verlangsamende Eigenschaft des UIScrollView-Objekts verwenden. Setzen Sie Ihre imageView in UIScrollView und verwenden Sie diese Eigenschaft. Es ist eine BOOL-Variable und der zurückgegebene Wert ist YES, wenn der Benutzer den Inhalt nicht zieht, aber das Scrollen immer noch stattfindet.

+0

Sorry, nicht was ich suche nach – nico

0

Werfen Sie einen Blick auf das Beispielprojekt MoveMe von Apple (Registrierung möglicherweise erforderlich). Es zeigt, wie man ein Plakat einer Berührung folgen lässt und sich selbst basierend auf verschiedenen Berührungen verwandelt. Die Idee besteht im Wesentlichen darin, dass Sie die UIResponder-Berührungsmethoden überschreiben, um zu analysieren, welche Art von Berührung das Gerät empfangen hat, und dann entweder das Objekt dem Finger des Benutzers zu folgen oder ihm eine Geschwindigkeit in einer Richtung zu geben ein langsamer Ziehen oder ein Swipe. Sie können Core Animation verwenden, um Änderungen am Rahmen des Objekts zu animieren.

+0

aktualisiert Link: [MoveMe] (https: //developer.apple.com/library/content/samplecode/MoveMe/Introduction/Intro.html) –

Verwandte Themen