75

UIView独自のアニメーションメソッドではなく、 CALayerを使用してアニメーションを概念化するのに苦労しています。これに「CoreAnimation 」を投入すると、誰かがこれらの概念を高レベルから明確に表現できるので、何が起こっているのか、UIViewアニメーション(今はよく知っている)をCALayerに移行したい理由をよりよく視覚化できます。 iPhoneのアニメーション。Cocoa-Touchのすべてのビューは自動的にレイヤーを取得します。そして、あなたはどちらか一方をアニメートできるようです?!?それらを混ぜ合わせても?!?しかし、なぜ?線はどこですか?それぞれの長所/短所は何ですか?

Core AnimationプログラミングガイドはすぐにLayer&Timing Classesにジャンプします。一歩下がって、これらのさまざまな部分が存在する理由と、相互にどのように関連しているかを理解する必要があると思います。

4

5 に答える 5

55

コントロールにはビューを使用し、目を楽しませるためにはレイヤーを使用します。レイヤーはイベントを受け取らないので、そのような場合にはビューを使用する方が簡単ですが、スプライトや背景などをアニメーション化する場合は、レイヤーが理にかなっています。イベントはレイヤーを介してバッキング ビューに直接渡されるため、イベントを台無しにすることなく、きれいに視覚的に表現できます。視覚的な表現に使用しているビューをオーバーレイしようとすると、下にあるビューに自分でタップ イベントを渡す必要があります。

于 2009-07-26T05:35:35.530 に答える
25

UIView常に にレンダリングされますCALayer。メソッドを使用UIViewしてビューをアニメーション化すると、基になる を効果的に操作できますCALayer

簡単なことをする必要がある場合は、UIViewメソッドを使用してください。より複雑な状況の場合、または特にどのビューにも関連付けられていないレイヤーが必要な場合は、 を使用しますCALayers

于 2009-07-16T20:01:13.497 に答える
21

過去1年間にたくさんのアプリを作成しました。これが私の親指のルールです:

  1. 希望どおりに動作しなくなるまでUIViewを使用します。
  2. 次に、CoreAnimationに移動します。しかし、あなたがそれに入る前に...
  3. 複数のアニメーションを作成する場合は、Cocos2Dを使用してください。
于 2009-07-16T20:13:22.693 に答える
9

UIView 変換は 2D のみであり、それに限定されます。LAyer 変換は 3D にすることもできます。3D を実行する場合は、それらを使用する必要があります。UIView 変換または CALayer 変換のいずれかを変更すると、UIView アニメーションが機能します。したがって、基本的なレベルでは、ビューではなくレイヤーを操作しているときに、より多くの操作を行うことができます。

于 2009-07-16T19:34:35.377 に答える
2

「Cocos2D の方が優れている点は何ですか? タッチ イベントの処理や、openGL ES に欠けている他の多くのものに関して、他に問題はありませんか?」に対する Chris の回答を誤解しているかどうかはわかりません。

答えは、Cocos2D が実際には OpenGL ES フレームワークに基づいていないことを示唆しているように思えます。これは優れた 2D ゲーム エンジンですが、レンダリングの大部分に OpenGL を実装しています。物理ライブラリに接続されているため、アニメーションに非常に興味深い可能性がたくさんあります。Chris は正しいです。実際、コーディングははるかに少なくなります。

于 2009-11-15T22:24:48.393 に答える