2009-02-26 7 views
1

アニメーション化したいさまざまなUIImageシーケンスのコレクションがあります。タイマーを使ってdrawRectを実行すると、いくつかの問題が発生することが判明しました。iPhoneで2次元画像アニメーションを実装するにはどうすればよいですか?

私の次のステップは、UIImageViewを使用して調査することでしたが、アニメーションイメージの配列を複数回更新するとメモリリークが発生するようです。

私の次のステップは、CALayerとCAAnimationを使用して調べることでしたが、文書をすばやく見てから、画像間でアニメーション化することを意味していないように見えます(注記:何か、ただの画像)。

私は正しい道を踏みにじっているのですか、それとも私が調査しなければならない別の方向がありますか?

答えて

1

本当にUIImageViewの画像配列を複数回更新する必要がありますか?既に使用されているアニメーションを変更する必要がある場合は、新しいUIImageViewを作成するのが最善であると思いましたか?

UIImageViewの配列アニメーションにメモリリークがあると聞いていますが、v2.0から使用していて、重大な問題はありませんでした。もちろんYMMV。

最初にフレームの配列を設定するには、NSMutableArrayをUIImages(フレームごとに1つ)でロードし、それをUIImageViewのanimationImagesプロパティに設定します(animationDurationプロパティも設定します)。アニメーションを作成するときはいつでも、startAnimatingメソッドを呼び出してください。通常の使用では、設定されたフレームの配列を変更する必要はありません。

+0

私は3つのフルスクリーンアニメーションを使っています...私は3つのimageViewを試してみたいと思います。必要なときに[bringToFront]を呼び出してみましょう。 – Jonas

+0

私は別の質問がありますが... UIImageViewのアニメーションが終了したときを判断する方法はありますか?ドキュメントにコールバック/デリゲートが表示されません。 :/ – Jonas

+0

私のアニメーションはかなり小さくなっています。いくつかのフルスクリーンアニメーションを一度にメモリに保持することは、メモリで大ヒットになるでしょう。可能であれば、必要に応じて各UIImageViewのフレームをロードする必要があります。 – philsquared

-1

私はiPhoneの開発者には慣れていませんが、2Dアニメーションのスプライトが必要なようです。各フレームを含む大きな画像ファイルで、一度に1つの画像のみを表示します。 2次元配列のインデックス作成と同様ですが、各フレームのピクセルオフセットを追跡するだけです。

関連する問題