我有一个旋转瓶子的应用程序。 当有人点击一个按钮时,瓶子会旋转。旋转瓶子应用程序
就像现在的代码一样,瓶子会旋转10次,然后停止在0到360之间的随机程度。但是我希望瓶子能够平稳地旋转并停止平滑,而不仅仅是停止不变。我想让瓶子旋转得越来越慢。
代码:
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()
}
这里有什么建议?我还想要一个当瓶子停下来的功能。所以我可以在瓶子停止时添加一个弹出窗口。
一遍遍呼唤CGAffineTransformRotate喜欢就是不夜的方式来实现这一目标。你会想看看“缓解”,以协助最终放缓。 – JoshStrange
角速度+角减速会给你在任何给定时间的角度。 – Sulthan
@Sulthan Ehm,Huh? –