我有一张我想旋转 360°(顺时针)然后重复的图像,但我无法找到正确的方法来执行此操作。我可以做这个:
UIView.Animate(1, 0, UIViewAnimationOptions.Repeat,
() =>
{
LoadingImage.Transform = MonoTouch.CoreGraphics.CGAffineTransform.MakeRotation(-(float)(Math.PI));
},
() =>
{
});
它将我的图像旋转 180°,然后重新开始并重复。所以,我想如果我做 1.99 * PI 之类的事情,它会几乎一直旋转并且可能看起来还不错。不幸的是,动画系统比这更聪明,只会向相反的方向旋转!
那么让图像连续旋转 360° 的正确方法是什么?
更新
在帮助或埃里克的评论下,我得到了这个:
CABasicAnimation rotationAnimation = new CABasicAnimation();
rotationAnimation.KeyPath = "transform.rotation.z";
rotationAnimation.To = new NSNumber(Math.PI * 2);
rotationAnimation.Duration = 1;
rotationAnimation.Cumulative = true;
rotationAnimation.RepeatCount = 10;
LoadingImage.Layer.AddAnimation(rotationAnimation, "rotationAnimation");
在我的示例中,它确实旋转了 360°,旋转了 10 次(请参阅 参考资料RepeatCount
),但我没有办法让它重复,直到我停止它。CABasicAnimation
有 aRepeatCount
和 a RepeatDuration
,但似乎没有属性告诉它继续重复。我可以设置RepeatCount
一个适当高的值,它会一直旋转直到用户可能失去兴趣,但这似乎不是一个很好的解决方案。