2011-01-21 4 views
7

多くの人が、CABasicAnimationオブジェクトを使用した後にそのオブジェクトを保持することについて話しています。完了後にCABasicAnimationを削除しないと再利用する方法は?

だから

removedOnCompletion = NO

を設定することにより、アニメーションオブジェクトは、アニメーションが完了したときに層に付着し続けます。新しいCABasicAnimationを作成せずにこのアニメーションを再起動するにはどうすればよいですか?

このオブジェクトを守るのは何ですか?私が知っている唯一の利点は、removedOnCompletion = NOを設定してkCAFillModeForwardsを設定して、コアアニメーションが視覚的表現をCALayerのモデル値に戻さないようにすることです。

しかし、誰もが話しているように、アニメーションを再利用する方法は?

答えて

0

これは私のために働いたが、私は...誰かが値が既にキーに格納された私に教えてくれると確信して、私はレイヤーを作成し、それにアニメーションを割り当てられた私は、アニメーションを設定し

レイヤーに関連付けられたキー付き値。

この例ではlayersCurrentAnimationはCABasicAnimationであり、myAnimatedLayerはCALayerです。アニメーションは、私が層からアニメーション値を取得します停止した場合

[myAnimatedLayer setValue:layersCurrentAnimation forKey:@"basicAnimation"] 

それに

CABasicAnimation *thisAnimation = [myAnimatedLayer valueForKey:@"basicAnimation"]; 

[myAnimatedLayer addAnimation:thisAnimation forKey:nil]; 
を再実行します
関連する問題