2009-05-28 3 views
1

私は、スクロール中にいくつかの洗練されたアニメーションが起こっているスクロールビューを持っています。パフォーマンスの2週間後にはパフォーマンスは許容されますが、スクロールはアニメーションが発生したときに100%スムーズではありません。別のスレッドで集中的なコアアニメーションブロックを開始するのに役立ちますか?

私はコアアニメーションがバックグラウンドスレッドでアニメーションを実行することを知っています。しかし、それらのアニメーションブロック(ほぼ同じ時間にそれらのうちの10個)をスレッドに分割することが役立つかどうかは疑問です。

面白そうに見えるいくつかの方法があります。

- performSelector:onThread:withObject:waitUntilDone: - performSelectorInBackground:withObject:

または実行することはナンセンスですか?

+4

(重複していますが、削除されました)一度質問してみてください... –

答えて

3

いいえ、それは助けになりません。あなたが正しく言っているように、Core Animationは既に別のスレッドで実行されています。 Core Animationは、できるだけ効率的にアニメーションブロックを処理するのに十分なほどスマートです。私はそれを妨げることを勧めません。

は言う:

があなたの アプリケーションの実行ループから独立して、アニメーションは別々の スレッドで実行することを可能にする抽象アニメーションインターフェイスを。 アニメーションが設定されて開始されると、 Core Animationは、フレーム レートでそれを実行する完全な とみなします。

+0

まあ、そうです。しかし、私はブロックをたくさん作るので、彼らはすべて同じスレッドで実行するつもりだろうか? – Thanks

+0

はいそうです。質問は、それはかなり見えるでしょうか? :) – Kriem

+0

もちろん、いつものように、試してみるだけです。私はこの質問は私がOpenGLを使用することをアドバイスするものと関係があると思いますか? – Kriem

1

本当に不安定な動作は本当にCAのものですか?他に何か起こっていますか?

バックグラウンドでネットワークにアクセスできる場合は、別のスレッドに移動することを検討してください。これらの呼び出しを処理するのにかかる時間は、UIがスクロールしながら画面を更新するのに費やす時間から離れます。

+0

いいえ、何も起こっていない。確かに私はいくつかのプリローディングコードを持っていましたが、プリロードがない場合よりもパフォーマンスが悪くなりました。とにかく多くはないので、最初はスクロールビュー内のすべてのビューを一度にロードすることになりました。 – Thanks

関連する問題