gpt4 book ai didi

iphone - 我可以使用 CGAffineTransformMakeRotation 将 View 旋转超过 360 度吗?

转载 作者:行者123 更新时间:2023-12-03 18:16:12 26 4
gpt4 key购买 nike

我正在编写一个 iPhone 应用程序,并且我有一个图像,我希望它向外旋转。

目前我的代码如下所示(包装在 beginAnimations/commitAnimations block 中):

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 是更好的选择?

谢谢,
布莱克。

最佳答案

您可以将 View 旋转一定的弧度,无论它是小于完整旋转还是完整旋转的许多倍,而不必将旋转分割成多个部分。例如,以下代码将每秒旋转一次 View 指定的秒数。您可以轻松地将其修改为将 View 旋转一定数量的旋转或一定数量的弧度。

- (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"];
}

关于iphone - 我可以使用 CGAffineTransformMakeRotation 将 View 旋转超过 360 度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/542739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com