我正在编写一个 iPhone 应用程序,并且我有一张图像,我想将其向外旋转。
目前我的代码如下所示(包装在 beginAnimations/commitAnimations 块中):
scale = CGAffineTransformScale(CGAffineTransformIdentity, 5.0f, 5.0f);
swirl = CGAffineTransformRotate(scale, M_PI);
[player setTransform:swirl];
[player setAlpha:0.0f];
但我发现,如果我尝试将旋转角度更改为 4*M_PI,它根本不会旋转。是否可以使用 CGAffineTransformRotate 获得 720° 旋转,或者我是否必须切换到其他技术?
如果我必须切换到另一种技术,您会建议使用另一个线程(或计时器)自己制作动画,还是 OpenGL 是更好的选择?
Thanks,
Blake.
您可以将视图旋转一定的弧度,无论它是小于完整旋转还是完整旋转的许多倍,而不必将旋转分割成多个部分。例如,以下代码将每秒旋转一次视图指定的秒数。您可以轻松修改它以将视图旋转一定数量的旋转或一定数量的弧度。
- (void) runSpinAnimationWithDuration:(CGFloat) duration;
{
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];
rotationAnimation.duration = duration;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = 1.0;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[myView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)