动画旋转UIImageView

时间:2015-08-17 12:24:19

标签: ios swift animation image-rotation

我尝试使用以下代码旋转UIImageView:

var x = -((self.needleImage.frame.size.width/2) - 15) //x for rotation point

UIView.animateWithDuration(5.0, delay: 10.0, options: nil, animations: {
    var transform = CGAffineTransformMakeTranslation(x, 0)
    transform = CGAffineTransformRotate(transform, CGFloat(-M_PI_2))
    transform = CGAffineTransformTranslate(transform, -x, 0)
    self.needleImage.transform = transformm

结束位置是正确的,但在动画/旋转期间,图像向左移动一点,然后在正确的位置定位。

我使用来自this的UIView尝试了相同的代码,但它并没有这样做。

然后我尝试将Imageview包装在一个视图中并旋转它,但这也没有帮助。

我在旋转点的顶部绘制了一个cicle,以检查它是否在正确的位置,但似乎没问题。

1 个答案:

答案 0 :(得分:0)

我过去曾使用此代码段来永久旋转视图,但通过删除最后一个闭包,它应该可以将图像旋转360度。这可以调整,或者当然。现在它已设置为2PI。您必须将旋转角度转换为弧度。

func animateRotator() {
        UIView.animateWithDuration(0.5, delay: 0, options: .CurveLinear, animations: { () -> Void in
            self.rotator.transform = CGAffineTransformRotate(self.rotator.transform, CGFloat(M_PI_2))
            }) { (finished) -> Void in
                self.animateRotator()
        }
    }