3

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"];
4

2 に答える 2

0

これを試して。

  • fromValue を取り除きます。fromValue を指定しない場合、アニメーションの現在の値が使用されます

    timePhase を削除します。新しい変更を最初からアニメーション化する必要があります。timePhase により、アニメーションがシフトされます。

    繰り返し回数を使用しないでください。これにより、アニメーションが最初から最後まで進み、スナップバックして繰り返します。

    animation.removedOnCompletion = NO を追加します。

于 2012-05-13T12:37:18.963 に答える
0

ここで詳しく見ることができます

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

于 2012-05-11T14:02:33.657 に答える