私はコアアニメーションを利用したLeopardのためのスクリーンセーバーを作りました。それは過度に複雑なことはしません。以下の構造におけるデータの「テーブル」を生成するCALayersとCATextLayersのツリーを使用する:スクリーンセーバーのジャッキー/かわいい(コア)アニメーション?
- root
› maincontainer
› subcontainer
› row [multiple]
› cell [multiple]
› text layer
せいぜい一度に画面上に描画50のCALayersがあります。
"テーブル"を作成したら、CABasicAnimationを使用してビューに「サブコンテナ」をアニメーション化して追加します。繰り返しますが、私は何も気にしません - ちょうど単純なフェードインです。
問題は、アニメーションが起こっている間、そのが痛みを伴うのを見ていることです。私の開発マシンでは4GBのRAMを搭載した3.06GhzのiMacであり、徐々に変化するのではなく、10ステップでアニメーションを切り刻んでいるようです。
スクリーンセーバーが対象としているppc mac-miniでは悪化します。アニメーションの再生(0%不透明度)から途中(50%)までの一般的な「トゥイーン」のアニメーション再生も拒否します。
私はObjectiveCが新しく、ガベージコレクション環境の使用経験がありますが、スクリーンセーバーがこのような問題を引き起こすほどのメモリが漏れているとは思いません。
また、ハードウェアの問題ではないと確信しています。私は、コアアニメーションを使用する組み込みのスクリーンセーバをテストし、比較のためにいくつかの無料のCAベースをダウンロードし、両方のマシンで問題なく動作します。
スクリーンセーバーでCAを使用したり、一般的にはCAを使用することに関する情報はかなり薄いですが、プロファイリング/面倒なスクリーンセーバーに関するアドバイス/チュートリアルは存在しないようです。コミュニティが提供できるあらゆる援助は、大歓迎です!暗黙のアニメーションが少しスムーズに物事を助けるかのよう
--- --- UPDATE
は思えます。それでも私のソリューションと同じように明示的なアニメーションですべてをアニメーション化しようとするほど悪くはありません。