连续旋转UIImageView

时间:2011-09-01 10:32:10

标签: iphone objective-c ios cocoa-touch animation

我在试图用球内的图像连续旋转UIImageview时遇到问题。我希望这个球在其中心轴上连续旋转。 我尝试过使用CGAffineTransform但它没有用。

请帮忙!

2 个答案:

答案 0 :(得分:80)

这可能是一个古老的Q,但它接近该主题的搜索结果的顶部。这是一个更加切割和干燥的解决方案:(确保导入QuartzCore / QuartzCore.h)

CABasicAnimation *rotation;
rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotation.fromValue = [NSNumber numberWithFloat:0];
rotation.toValue = [NSNumber numberWithFloat:(2*M_PI)];
rotation.duration = 1.1; // Speed
rotation.repeatCount = HUGE_VALF; // Repeat forever. Can be a finite number.
[yourView.layer addAnimation:rotation forKey:@"Spin"];

然后,停止删除/重置动画:(参见关于如何停止的注释)

[yourView.layer removeAnimationForKey:@"Spin"];

在swift:

let rotation = CABasicAnimation(keyPath: "transform.rotation")
rotation.fromValue = 0
rotation.toValue = 2 * M_PI
rotation.duration = 1.1
rotation.repeatCount = Float.infinity
view.layer.addAnimation(rotation, forKey: "Spin")

答案 1 :(得分:4)

如果您将变换用作:

,它应该有效
itemToRotate.transform = CGAffineTransformRotate(itemToRotate.transform, currentAngle);

我上传了一些sample code工作解决方案。添加逻辑以自动旋转它......