我有一个旋转瓶子的应用程序。
当有人单击按钮时,瓶子将旋转。

就像现在的代码一样,瓶子将旋转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()作为随机停止时间。

10-08 09:06