我想要旋转UIImage
,我已设法使用下面的代码,但是当我再次按下rotate
按钮时,图像不再旋转,有人可以解释为什么?
@IBAction func rotate(sender: UIButton) {
UIView.animateWithDuration(0.2, animations: {
self.shape.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4) * 2)
})
}
答案 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)
})
}
这样,每次点击按钮,您都会将旋转变量从之前的值更改为新值并旋转到新角度。