我正在尝试旋转CALayer,首先我将它旋转-30度,所以它向左转。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-30));
[UIView commitAnimations];
现在我希望它完成旋转,从左开始做另一个旋转,但它需要最短的路径。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-30));
[UIView commitAnimations];
如何强制旋转方向?
答案 0 :(得分:3)
您可以使用CABasicAnimation
旋转到特定角度。
CABasicAnimation *rotate =
[CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotate.toValue = @(M_PI*2);
rotate.duration = 1.0; // your duration
[yourView.layer addAnimation:rotate
forKey:@"myRotationAnimation"];
您可以使用一些参数来配置动画的外观(例如计时功能)。
默认情况下,动画在完成后会自行删除,因此您应该更新到结束值(这已经在所有“如何旋转...”中反复解释了 - 问题。
此外,核心动画需要QuartzCore.framework
(本例中为CALayer和CABasicAnimation)