2012-05-11 56 views
3

我有一個使用CABasicAnimation旋轉的uiimage。當我得到一個指南針更新時,我更改/更新時間偏移圖像的起點。修改CABasicAnimation,同時旋轉iPhone

這工作正常,但是當我從指南針獲取更新並刪除舊動畫時,它會跳轉到開始位置,然後再移動到其新的起始位置。這會導致閃爍的效果。是否有消除或同時刪除和添加動畫或以某種方式防止這種情況發生?

我的代碼至今爲止如下。

[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

試試這個。

  • 擺脫fromvalue。當您不指定fromValue時,它使用 動畫的當前值

    刪除timePhase。您想要從 開始動畫創建新變化。 timePhase會導致它移動你的動畫。

    請勿使用重複計數。這將導致動畫從 開始到結束,然後快速返回並重復。

    add animation.removedOnCompletion = NO。