我有一个使用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"];
答案 0 :(得分:0)
答案 1 :(得分:0)
试试这个。
摆脱fromValue。如果未指定fromValue,则使用 动画的当前值
删除timePhase。你想要动画新的变化 开始。 timePhase将使它改变你的动画。
不要使用重复计数。这将导致动画来自 它开始结束,然后重复并重复。
添加animation.removedOnCompletion = NO。