可能重复:
Why CAAnimation Rotation is returning to previous state
我正在尝试使用CATransform3DMakeRotation为旋转设置动画,但问题是一旦动画完成,图像就会回到其初始位置,即回零。但我想把它保留在完成旋转的地方。我该怎么做?
修改 我正在尝试做的是创建与新iPhone一起提供的相同指南针。基本上,位置管理员每隔几秒钟(或每秒几次)给我新的标题。使用新标题和时间戳,我试图获得一个平滑的图像动画,但没有到达任何地方。似乎唯一有用的是直接应用变换,例如:
compassimage.layer.transform = CATransform3DMakeRotation(newHeading.trueHeading *M_PI/180,0,0,1.0):
但那不是动画......
答案 0 :(得分:0)
您应该将animation.removedOncompletion设置为NO
答案 1 :(得分:0)
好的,回到基础,尝试将图像旋转90度并保持在那里。将以下代码添加到 - (void)viewDidLoad但是即使它旋转它仍然会在动画结束后返回到它的初始位置
CATransform3D rotationTransform = 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"];
答案 2 :(得分:0)
你所要做的就是改变数字,使其为负数。
compassimage.layer.transform = CATransform3DMakeRotation(-newHeading.trueHeading *M_PI/180,0,0,1.0):