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 verschiedene UIViewKeyframeAnimationOptions
versucht, aber scheint keiner von ihnen zu arbeiten.Erstellen Sie ein kontinuierlich rotierendes Quadrat auf dem Bildschirm mit animateKeyframesWithDuration
override func viewDidLoad() {
super.viewDidLoad()
let square = UIView()
square.frame = CGRect(x: 55, y: 300, width: 40, height: 40)
square.backgroundColor = UIColor.redColor()
self.view.addSubview(square)
let duration = 1.0
let delay = 0.0
let options = UIViewKeyframeAnimationOptions.Repeat
UIView.animateKeyframesWithDuration(duration, delay: delay, options: options, animations: {
let fullRotation = CGFloat(M_PI * 2)
UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 1/3, animations: {
square.transform = CGAffineTransformMakeRotation(1/3 * fullRotation)
})
UIView.addKeyframeWithRelativeStartTime(1/3, relativeDuration: 1/3, animations: {
square.transform = CGAffineTransformMakeRotation(2/3 * fullRotation)
})
UIView.addKeyframeWithRelativeStartTime(2/3, relativeDuration: 1/3, animations: {
square.transform = CGAffineTransformMakeRotation(3/3 * fullRotation)
})
}, completion: {finished in
})
}
1/3 ergibt sich ein anderes Ergebnis zu 1.0/3.0 verwenden. Ist das das Problem? – InsertWittyName
Versucht, die 9. Zeile in zu ändern 'let options = UIViewKeyframeAnimationOptions.CalculationModeLinear | UIViewKeyframeAnimationOptions.Repeat' hilft aber nicht – NixiliaAK
Versucht, alle 1/3 zu 1.0/3.0 zu ändern. aber hilft nicht – NixiliaAK