Mit diesem Code:Wie kann ich den "Sprung" in meiner CABasicAnimation beseitigen?
func rotateTheView(_ aView: UIView, inClockwiseDirection isClockwise: Bool) {
let multiplier = (isClockwise ? 1 : -1)
let key = (isClockwise ? "Spin" : "Rotate")
var rotation: CABasicAnimation?
rotation = CABasicAnimation(keyPath: "transform.rotation")
rotation!.fromValue = Int(0)
let multiplicand = multiplier * 2
rotation!.toValue = Int(Double(multiplicand) * .pi)
rotation!.duration = 30 // Speed
rotation!.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
rotation!.repeatCount = HUGE //HUGE_VALF Repeat forever.
aView.layer.add(rotation!, forKey: key)
}
ich die Animation Ich will bekommen. (Entweder dreht sich ein Rad oder eine Zelle dreht sich schnell genug in die entgegengesetzte Richtung, um immer genau die richtige Seite nach oben zu bleiben).
Wenn jedoch die 30 Sekunden (Dauer) abgelaufen sind, gibt es ein Flackern, wenn die Ansicht zu der Darstellung vor der Animation zurückspringt.
Ich verstehe, dass es so funktionieren soll.
Wie kann ich die Drehung auf das "Vorher" -Bild anwenden, so dass nach Ablauf der Zeit keine Zellen mehr springen?
Wenn Sie die Dauer der Animation erhöhen, verlangsamt sich der Spin des Rads, so dass dies keine geeignete Lösung ist.
Wenn #22521690 gilt, verstehe ich nicht, wie - ich habe keine explizite CAT-Transaktion.
Warum deklarieren Sie "Rotation" als Optional? – matt
Ja, ich muss es aufräumen. Ich habe dies vor ein paar Jahren von Ziel c umgesetzt. Ich überprüfe es erst kürzlich. – Mozahler
Meine Quelle aktualisiert. Danke für das Aufzeigen! – Mozahler