1

可能重复:
为什么 CAAnimation Rotation 正在返回到以前的状态

我正在尝试使用 CATransform3DMakeRotation 为旋转设置动画,但问题是一旦动画完成,图像会回到其初始位置,即回到零。但我想把它放在它完成旋转的地方。我该怎么做?

编辑 我要做的是创建与新 iPhone 相同的指南针。基本上,位置管理器每隔几秒(或每秒几个)给我一个新的标题。使用新标题和时间戳,我试图获得图像的平滑动画,但没有得到任何结果。唯一可行的方法是直接应用变换,例如

compassimage.layer.transform = CATransform3DMakeRotation(newHeading.trueHeading *M_PI/180,0,0,1.0): 

但这不是动画...

4

3 回答 3

0

你所要做的就是改变这个数字,使它成为负数。

compassimage.layer.transform = CATransform3DMakeRotation(-newHeading.trueHeading *M_PI/180,0,0,1.0):
于 2010-05-18T17:19:15.977 回答
0

您应该将animation.removedOncompletion设置为 NO

于 2009-07-28T21:21:48.700 回答
0

好的,回到基础,只是尝试将图像旋转 90 度并保持在那里。将以下代码添加到 - (void)viewDidLoad 但即使它旋转它仍然会在动画完成后回到它的初始位置

CATransform3D 旋转变换 = CATransform3DMakeRotation(M_PI, 0, 0, 1.0);

CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
rotationAnimation.toValue = [NSValue valueWithCATransform3D:rotationTransform];
rotationAnimation.duration = 2.0f;
rotationAnimation.removedOnCompletion = NO;

[image.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
于 2009-07-28T22:15:50.463 回答