我尝试使用以下代码旋转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,以检查它是否在正确的位置,但似乎没问题。
答案 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()
}
}