我有一个使用 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"];