点按重复动画

时间:2015-05-30 17:03:17

标签: ios swift

我想要旋转UIImage,我已设法使用下面的代码,但是当我再次按下rotate按钮时,图像不再旋转,有人可以解释为什么?

@IBAction func rotate(sender: UIButton) {
    UIView.animateWithDuration(0.2, animations: {
        self.shape.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4) * 2)  
    })
}

1 个答案:

答案 0 :(得分:2)

您正在将形状图像视图的变换更改为新的固定值。如果再次点击它,则转换已具有该值。您再次将变换设置为相同的值,这不会改变任何内容。

您需要定义一个实例变量来跟踪旋转。

var rotation: CGFloat = 0


@IBAction func rotate(sender: UIButton) 
{
  UIView.animateWithDuration(0.2, animations: 
  {
    self.rotation += CGFloat(M_PI_4) * 2 //changed based on Daniel Storm's comment
    self.shape.transform = CGAffineTransformMakeRotation(rotation)  
  })
}

这样,每次点击按钮,您都会将旋转变量从之前的值更改为新值并旋转到新角度。