Erstellen Sie mit animateKeyframesWithDuration ein kontinuierlich rotierendes Quadrat auf dem Bildschirm

8

Ich habe versucht, den folgenden Code zu verwenden, um ein kontinuierlich rotierendes Quadrat auf dem Bildschirm zu erstellen. Aber ich weiß nicht, warum sich die Drehzahl ändert. Wie kann ich den Code ändern, um die Drehzahl invariabel zu machen? Ich habe versucht, verschiedene UIViewKeyframeAnimationOptions , aber scheint keiner von ihnen funktionieren.

%Vor%     
NixiliaAK 30.10.2014, 23:22
quelle

4 Antworten

4

Das ist wirklich seltsam ... UIView.animateKeyframesWithDuration funktioniert nicht so, wie ich es erwarten würde, wenn UIViewKeyframeAnimationOptions.CalculationModeLinear|UIViewKeyframeAnimationOpti‌​ons.Repeat mit Optionen übergeben wurde.

Wenn Sie die Nicht-Block-Methode zum Erstellen einer Keyframe-Animation verwenden (siehe unten), wird die Drehung wie erwartet wiederholt.

Wenn ich herausfinden werde, warum die blockbasierte Option nicht funktioniert, werde ich versuchen, daran zu denken, die Antwort auch hier zu aktualisieren!

%Vor%     
MathewS 31.10.2014, 15:19
quelle
8

Ich habe das gleiche Problem schon einmal gesehen, so kann ich es machen:

%Vor%

Ich habe dieses Problem kurz vor dem Aufgeben begriffen. Ich denke nicht, dass es doc darüber gibt, aber es funktioniert einfach.

    
Alan Zhang 07.12.2014 10:39
quelle
1

Fügen Sie UIViewKeyframeAnimationOptionCalculationModeLinear Ihre Keyframe-Optionen hinzu. Das Standardverhalten für UIView-Animationen besteht darin, die Animation zu vereinfachen. h., starte langsam, gehe auf Geschwindigkeit und bremse dann wieder kurz vor dem Ende ab.

    
Daniel T. 30.10.2014 23:30
quelle
0

AFAIU, dies passiert, weil die Standardanimationskurve UIViewAnimationOption.CurveEaseInOut ist.

Leider hat UIViewKeyframeAnimationOptions keine Optionen zum Ändern der Kurve, aber Sie können sie manuell hinzufügen!

Verwenden Sie diese Erweiterung:

%Vor%

Jetzt können Sie Kurvenoptionen in UIView.animateKeyframesWithDuration method

verwenden %Vor%     
Anton 03.08.2016 06:50
quelle

Tags und Links