2016-10-04 5 views
-1

Ich versuche, diese UIView zu machen drehen forever:Drehen UIView 360 ° immer

let options = UIViewAnimationOptions.autoreverse.union(UIViewAnimationOptions.repeat) 

UIView.animate(withDuration: 5, delay: 0, options: options, animations: {    
    self.transform = CGAffineTransform(rotationAngle: CGFloat(2 * M_PI)) 
}, completion: { _ in }) 

Derzeit ist es nichts tut, weil der Drehwinkel die gleiche Position ist es jetzt an ist. Wenn ich etwas wie M_PI versuche, funktioniert es und geht hin und her wie es sollte, aber es tut es nur halbwegs.

Ich frage mich, wie ich diese Rotation für immer in einer vollen 360-Grad-Bewegung fortsetzen kann.

Ich habe versucht, dieses: UIView Infinite 360 degree rotation animation? , die das gleiche Problem hat ich tun, aber ich kann nicht herausfinden, wie es seit dem Obj-C zur Arbeit kommen -> hat Swift viele Veränderungen. Würde eher UIView.anate als CAAnimation verwenden, aber nicht sicher, ob dies der einzige andere Weg ist.

+0

"Würden Sie eher UIView.animate als CAAnimation verwenden" Dann haben Sie die verknüpften Antworten nicht verstanden, die deutlich zeigen, warum das unmöglich ist. Sie müssen CABasicAnimation verwenden, um dies zuverlässig zu tun. – matt

+0

Das wusste ich nicht. Danke, ich werde es überprüfen – Nicholas714

Antwort

1

Verwenden Sie CABasicAnimation, keine Animation und rotieren Sie additiv, nicht zu einem absoluten Wert. Es wird auch helfen, wenn Sie für immer additiv 180 Grad drehen, da dies einfacher auszudrücken ist.