我有一个使用CABasicAnimation旋转的uiimage。当我得到指南针更新时,我会通过时间偏移来更改/更新图像起点。

效果很好,但是当我从指南针获取更新并删除旧动画时,它会跳回到开始处,然后再移动到新的开始位置。这会导致闪烁效果。是否可以同时删除和添加动画或以某种方式阻止动画的发生?

到目前为止,我的代码如下。

[self.waveImage.layer RemoveAllAnimations];

CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.fromValue = [NSNumber numberWithFloat:0.0];
animation.toValue = [NSNumber numberWithFloat:2.0 * M_PI];
animation.duration = 1.0;
animation.repeatCount = HUGE_VALF;    // Repeat forever
animation.speed = 1.0/duration;
animation.timeOffset = startingPhase;
animation.fillMode = kCAFillModeForwards;

[self.waveImageView.layer addAnimation:animation forKey:@"transform.rotation.z"];

最佳答案

你可以在这里详细看到

https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CABasicAnimation_class/Introduction/Introduction.html

10-07 22:41