2012-03-02 3 views
2

いくつかのコンサルタントが私たちのためにいくつかのコードを構築しました。私は彼らがUIViewサブクラスのために書いたメソッドを見ています。これは基本的に次のようになります:はremoveAllAnimationsで、アニメーションを追加する方法はありますか?

- (void)startAnimation { 
    [self.circle removeAllAnimations]; 

    // then some animation code for the circle. The circle is a CAShapeLayer. 
    [self.circle addAnimation:group forKey:@"animationPath"]; 
} 

アニメーションを実装するには2つの質問がありますか?最初にすべてのアニメーションを削除してから、追加しますか?これは別のどこかのアプリでループのために、それは基本的にオブジェクトを見て、ちょうど呼び出すので、常に最初のアニメーションを除去するための高価な操作である場合、私は思っていた:

for (id points in pointsArray) { 
    [points startAnimation]; 
} 

盲目的に取り外した場合、私は思っていましたポイントオブジェクトが既にアニメーション化されているかどうかを確認することなく、アニメーションを追加して戻してもOKです。

また、アニメーション化されたものをチェックする方法はありますか?コードを見ると、すべてのオブジェクトのアニメーションが開始されます。 (それはscrollViewにだとそれが現在表示されていないだから)彼らは、画面の外に配置されているただし場合、オブジェクトは、彼らが作成し、ビューに追加されたときにstartAnimationは、各オブジェクトに対して呼び出されていてもアニメーションはありません。ありがとう。

答えて

0

個人的には、あなたの作品を追加する前に、その瞬間に実行される可能性のあるすべてのアニメーションを削除するように作業するのは悪い方法だとは思いませんが、私が言ったように、これは個人的な意見です。

私は特別おそらくその瞬間に、何のアニメーションが実行されていないが、私が言ったように、これは単なる個人的であることを考慮すると、本当に悪いパフォーマンスヒットになるだろうと思ういけません。あなたはリンゴの開発者ガイドをチェックすると一方

は、それはアニメーションを削除doenstようだ

https://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/animatingviews/animatingviews.html

関連する問題