IView's独自のアニメーションメソッドとは対照的に、アニメーションをCALayerで概念化することに苦労しています。これに "Core Animation"を投げると、おそらく、誰かがこれらの概念を高レベルから明確に説明できるため、何が起こっているのか、UIViewアニメーションを移行したい理由を視覚化できます(これはiPhoneのCALayerアニメーションに慣れています。 Cocoa-Touchのすべてのビューは自動的にレイヤーを取得します。そして、どうやら、あなたは一方および/またはもう一方をアニメーション化することができますか?!?それらを一緒に混ぜますか?!?しかし、なぜ?行はどこですか?それぞれの長所と短所は何ですか?
コアアニメーションプログラミングガイドはすぐにレイヤークラスとタイミングクラスにジャンプします。これらのさまざまな要素が存在する理由と相互関係を理解する必要があります。
目の保養のためのコントロールとレイヤーのビューを使用します。レイヤーはイベントを受信しないため、これらの場合にビューを使用する方が簡単ですが、スプライトや背景などをアニメーション化する場合は、レイヤーを使用すると便利です。イベントはレイヤーを通過してバッキングビューに渡されるため、イベントをめちゃくちゃにすることなく、かなり視覚的に表現できます。視覚的な表現に使用しているビューをオーバーレイしてみてください。タップイベントを基になるビューに自分で渡す必要があります。
UIView
は常にCALayer
にレンダリングされます。 UIView
メソッドを使用してビューをアニメーション化すると、基礎となるCALayer
を効果的に操作できます。
単純なことを行う必要がある場合は、UIView
メソッドを使用します。より複雑な状況、または特にビューに関連付けられていないレイヤーが必要な場合は、CALayers
を使用します。
私はこの一年でたくさんのアプリを作りました。これが私の経験則です:
UIView変換は2Dのみであり、それに制限されています。ただし、LAyer変換は3Dにすることができます。3Dを行う場合はこれらを使用する必要があります。UIView変換またはCALayer変換を変更すると、UIViewアニメーションが機能します。したがって、基本的なレベルでは、ビューではなくレイヤーで作業しているときに、より多くの操作を行うことができます。
「何がCocos2Dの方が上手く機能しているのか?タッチイベントの処理や、openGL ESで見落とされている他の多くの問題に関して、他に問題はありませんか?」
答えは、Cocos2Dが実際にはOpenGL ESフレームワークに基づいていないにもかかわらず、実際にはそうであると示唆しているようです。優れた2Dゲームエンジンですが、レンダリングの大部分にOpenGLを実装しています-物理ライブラリに接続されているため、アニメーションに非常に興味深い可能性が数多くあります-Chrisは正解です-実際、コーディングははるかに少なくなっています。