1

フレームベースのアニメーションを再生する必要があります。UIImageViewをanimationImagesで試しましたが、アニメーションを制御できません。一時停止できない、マスクできない、現在のフレームがわからないなど。

そこで、UIViewをサブクラス化し、AnimationViewと呼ばれるものを作成しました。これは、画像の配列を取得し、NSTimerを使用してアニメーションを実行します。drawRectで:その後、すべてのマスキングとその他の必要なすべてを実行できます。

ただし、この方法は遅すぎます。30 fpsでアニメーションを実行できません。おそらく、10 fpsでも実行できず、3GSでテストしています。(私はすべてのフレームでマスキングとブレンディングを行っているだけです:)-そして同じ画像を使用すると、UIImageViewで30fpsで正常に再生されます)。

それで、これを達成するための最も効率的な方法は何ですか?NSTimerは悪い選択ですか?それを回避するより良い方法はありますか?

ありがとう :)

4

2 に答える 2

1

この質問に対するこの回答では、Mo DeJongは、PNG画像フレームを手動でアニメーション化するクラスのソースコード実装へのリンクを提供します。彼は、3GS以外のiPhoneでアニメーション化する480x320の画像に対して15FPSを取得すると主張しています。

于 2009-10-15T22:24:57.283 に答える
0

NSTimer大丈夫です。問題は、Quartz()を使用してすべてのフレームでCPUを使用して多くのピクセルに触れていることですdrawRect:。マスクを使用して画像を作成する必要がある場合はOpenGLを使用するか、CALayersまたはCGImagesに画像をキャッシュします。

于 2009-10-15T17:38:08.437 に答える