我有一个旋转瓶子的应用程序。
当有人单击按钮时,瓶子将旋转。
就像现在的代码一样,瓶子将旋转10次,然后以0到360之间的随机度停止。但是我希望瓶子顺滑旋转并顺畅停止,而不仅仅是STOP常数。我希望瓶子旋转的越来越慢。
码:
func rotateRandom(){
let diceRoll = CGFloat(arc4random_uniform(360))
let degree = 0.0174532925 as CGFloat
let rotate = diceRoll
UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveLinear, animations: { () -> Void in
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, rotate)
}, completion: nil)
//println(diceRoll)
}
func rotateLeft(){
UIView.animateWithDuration(3, delay: 0.0, options: UIViewAnimationOptions.CurveLinear, animations: { () -> Void in
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
self.bottleImageView.transform = CGAffineTransformRotate(self.bottleImageView.transform, -180 * 0.0174532925)
//self.imageView.transform = CGAffineTransformMakeRotation(360)
}, completion: nil)
rotateRandom()
}
有什么建议吗?我还想要瓶停止时的功能。因此,当瓶子停下时,我可以添加一个弹出窗口。
最佳答案
我将转换值作为属性,然后使计时器增加转换值并将转换应用于单个图像。当需要放慢速度时,请逐渐减小该增量,直到停止该增量为止。
使用arc4ran_uniform()
作为随机停止时间。