我试图通过顺时针旋转来动画我的图像,并缩小。到目前为止,它只是逆时针方向。我已经尝试了沿Z旋转的值/ Key路径的正值和负值,但它没有改变任何内容。
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
splashView.frame = CGRectMake(160, 284, 0, 0);
[splashView.layer setValue:[NSNumber numberWithInt:-360]
forKeyPath:@"transform.rotation.z"];
[UIView commitAnimations];
答案 0 :(得分:1)
或者直接使用M_PI。
M_PI_4
= 45度M_PI_2
= 90度M_PI
= 180度M_PI*2
= 360度您还可以更轻松地设置转换。
// set transform
splashView.layer.transform = CATransform3DMakeRotation(-M_PI*2, 0, 0, 1);
而不是
[splashView.layer setValue:[NSNumber numberWithInt:-360]
forKeyPath:@"transform.rotation.z"];
答案 1 :(得分:1)
要旋转在特定方向超过360°,请使用CAKeyframeAnimation
。在那里,您不仅可以设置最终值,还可以设置一些中间值。
// consider this to be pseudo code
keyFrameAnimation.values = @[ 90, 180, 270, 360, 450, 540, ... ];
我没有任何代码可以向您展示,但这绝对是实现此目的的方法。
答案 2 :(得分:0)
那是因为当你需要弧度时,你会将度数传递给动画。以下是如何进行转换的示例。
float degrees = 90.0f;
float radians = degrees * (180.0f / M_PI);