Rotation auf einem UISnapBehavior deaktivieren?

8

Ich mag das UISnapBehavior Snippet, aber ich möchte es wirklich verwenden, um in nur eine Richtung mit einer leichten Oszillation zu gleiten.

Gibt es eine Möglichkeit, die Rotation für dieses Verhalten zu deaktivieren? As SpriteKit hat allowsRotation -Eigenschaft, die einfach ausgeschaltet werden kann.

    
Geri 02.10.2013, 15:51
quelle

5 Antworten

26

Sie können dies tun, indem Sie einen UIDynamicItemBehavior zu Ihrem UIDynamicAnimator hinzufügen und dann seine Eigenschaft allowsRotation auf NO wie folgt setzen:

%Vor%     
Alfie Hanssen 08.10.2013, 00:44
quelle
8

Dafür ist UIKitDynamics nicht erforderlich.

musste einfach nur benutzen:

%Vor%     
Geri 03.10.2013 13:42
quelle
7

Hier ist eine bessere Antwort: Ein UISnapBehavior hat eine Aktionseigenschaft, die einen Block benötigt, der bei jedem Schritt aufgerufen wird. Setze diesen Block so ...

%Vor%

... bewirkt, dass die Rotation ohne weitere Nebenwirkungen beendet wird.

    
Dan Wesnor 04.10.2013 19:45
quelle
1

Ich habe selbst nach der gleichen Lösung gesucht, aber die Einstellung von allowsRotation auf UIDynamicItemBehavior hat mir nicht den gewünschten Effekt gebracht.

Ich konnte jede Bewegung von UISnapBehavior verhindern, indem ich UICollisionBehavior platzierte und zwei Begrenzungen auf jeder Seite der Ansicht platzierte, die ich nicht verschieben wollte (in meinem Fall habe ich Grenzen auf der linken und rechten Seite konfiguriert der Ansicht, um X-Achsen-Bewegung zu verhindern). Um einen schönen Bounce-Effekt zu erhalten, habe ich auch friction auf 0 gesetzt (mit UIDynamicItemBehavior ) und die damping auf UISnapBehavior angepasst, um die richtige Menge an Bounce zu erhalten.

Hier ist ein Beispiel, was bei mir funktioniert hat:

%Vor%     
Adam Schlag 28.04.2014 13:54
quelle
0

UIView entspricht UIDynamicItem, das über eine transform-Eigenschaft verfügt, die beim Ausführen einer Rotation aufgerufen wird. Also oversetting setTransform: mit nichts ...

%Vor%

... stoppt die Rotation, aber wahrscheinlich mit unbekannten und unerwünschten Nebenwirkungen. Brauchen Sie einen Weg, um zu überprüfen, ob die dynamische Animation läuft.

Auf dem Weg zum neuen Ort wird es immer noch einige Bewegungen parallel zur Bewegungsrichtung geben.

Es wäre großartig, wenn wir den Betrag des Rotations- / Hüpfeffekts kontrollieren könnten, da er ziemlich cartoonhaft ist.

    
Dan Wesnor 04.10.2013 01:44
quelle