Erzwinge die Drehung im Uhrzeigersinn / gegen den Uhrzeigersinn für eine CABasicAnimation einer UIImageView

8

Ich animiere ein Pendel, das von 0 Grad auf maximal 200 Grad schwingt und dann wieder zurück. Das Problem ist, dass, wenn das Pendel über 180 Grad geht, es auf dem kürzesten Weg, der im Uhrzeigersinn fortgesetzt werden soll, auf 0 zurückkehrt. Und ich möchte, dass es gegen den Uhrzeigersinn geht. Hier ist mein Code: ('rechts' ist ein boolescher Wert, der WAHR ist, wenn das Pendel von links nach rechts schwingt)

%Vor%

Irgendwelche Ideen, wie ich das schaffen kann? Es ist das letzte Stück meines Swingometer-Puzzles, das ansonsten großartig funktioniert: D Danke!

Michael

    
Smikey 12.08.2010, 16:54
quelle

4 Antworten

8

Um es gegen den Uhrzeigersinn zu drehen, setzen Sie x auf einen negativen Wert (add - in front) wo willst du

%Vor%     
Lilz 20.09.2010, 07:17
quelle
1

Versuchen Sie, etwas wie

zu setzen %Vor%
  

Mithilfe von Wertumwandlungsfunktionen können Animationen die Transformationseigenschaft eines Layers mithilfe beliebiger Transformationen jeder Komponente (keine Normalisierung auf 360 °) und im Normalfall, wenn mehrere Animationen gleichzeitig angewendet werden, bewirken.

     

Sie verwenden eine Wertumwandlungsfunktion, die von 0 ° bis 180 ° um die z-Achse rotiert, indem Sie eine CAValueTransform-Funktion erstellen, die kCAValueFunctionRotateZ spezifiziert und dann eine Animation mit einem fromValue von 0, einem toValue von M_PI erstellt und die Animation festlegt valueTransform-Eigenschaft für die Wertumwandlungsinstanz.

    
tc. 12.08.2010 18:23
quelle
1

Ich denke, Sie müssen diesen Code verwenden:

%Vor%     
user1985086 16.01.2013 20:32
quelle
0

Ich bin mir nicht sicher, was genau das Problem ist, aber wenn Sie die automatische Umkehrfunktion der Animation verwenden, können Sie dies wahrscheinlich vereinfachen und bewirken, dass es sich vor und zurück dreht (schwingt). Das funktioniert für mich:

%Vor%     
Matt Long 12.08.2010 17:40
quelle