2009-05-30 8 views
8

私はいくつかのコアアニメーションを同時に行っています。それらはすべてコンテキストとアニメーションIDを持ちます。コンテキストはアニメーション化されたオブジェクト(UIImageViewオブジェクト)です。私はそれらを一時停止したいので、アニメーションが一時的に停止してから、いくつかのことが完了したら、アニメーションを再開してください。これらのことは、UIScrollViewの非常に高速なスクロール移動でのみ発生します。私は、すべての進行中のアニメーションを停止することによってパフォーマンスを改善したいが、スクロールビューをスクロールさせるアニメーションは停止しない。私はそのスクロールビューのcontentOffsetのカスタムアニメーションを実装しました。Core Animationを一時停止して後で再開する方法はありますか?

答えて

4

これを克服した唯一の方法は次のとおりです。それぞれについて、

はあなたがアニメーションを停止したいビュー:ビューの枠を設定し

プレゼンテーション層

再計算アニメーション

あなたのスクロールを実行し、そのビューから

をすべてのアニメーションを削除

新しいアニメーションをビューに追加する

私はそれがあなたが聞きたいものではないことを知っていますが、それはそれが聞こえるほど悪くはありません。停止したいビューを追跡する良い方法は、それらに所定のタグを付けることです。


は、アニメーションを削除するには:

[myView.layer removeAllAnimations]

[myView.layer removeAnimationForKey: "theAnimationKey" @]あなたはスピードを設定することにより、層のアニメーションを一時停止することができ

+0

どのようにビューからアニメーションを削除しますか? – Thanks

+0

[myView.layer removeAllAnimations]または[myView.layer removeAnimationForKey:@ "theAnimationKey"] –

+0

これは愚かな質問かもしれませんが、プレゼンテーション層にビューのフレームを設定するにはどうすればよいですか?私はあなたがここのビューのフレームプロパティについて話していないと仮定しています。 – kareman

関連する問題