У меня есть uiimage, который вращается с помощью CABasicAnimation. Когда я получаю обновление компаса, я изменяю/обновляю начальную точку изображения по смещению времени.
Это работает нормально, но когда я получаю обновление от компаса и удаляю старую анимацию, она возвращается к началу, прежде чем перейти в новое начальное местоположение. Это вызывает эффект мерцания. Есть ли способ удалить и добавить анимацию одновременно или каким-то образом предотвратить это?
Мой код пока ниже.
[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"];