Ho provato a utilizzare il codice seguente per creare un quadrato a rotazione continua sullo schermo. Ma non so perché la velocità di rotazione sta cambiando. Come posso cambiare il codice per rendere invariabile la velocità di rotazione? Ho provato diversi UIViewKeyframeAnimationOptions
, ma sembra che nessuno di loro funzioni.Creare un quadrato a rotazione continua sullo schermo utilizzando 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 dà un risultato diverso da 1.0/3.0. È questo il problema? – InsertWittyName
Ho provato a cambiare la nona riga su 'let options = UIViewKeyframeAnimationOptions.CalculationModeLinear | UIViewKeyframeAnimationOptions.Repeat' ma non aiuta – NixiliaAK
Ho provato a cambiare tutto da 1/3 a 1.0/3.0. ma non aiuta – NixiliaAK