私は常に CoreGraphics と CoreAnimation を使用していましたが、それぞれが単独でどのように機能するかは理解していますが、一方が他方と話をしなければならないような特殊なケースは理解していません。また、UIView
が の優れたラッパーであることも理解しています。 はレンダリングのすべての重労働を行い、はタッチベースの応答性を追加します。CALayer
CALayer
UIView
しかし、これまで見てきたすべての質問は、問題を一方から攻撃するものであり、それらの間、特に CoreGraphics とCALayer
.
とにかく、私の質問は...
CoreGraphics は CALayer とどのように関係していますか?
私の理解では、 aCALayer
は CoreGraphics メソッドをラップして自分自身を描画しますが、一度実行すると、無効になるまで自分自身のスナップショットを保持できます。しかし、これらの描画方法は、そのレイヤーのサブレイヤーとどのように相互作用するのでしょうか? それらは排他的ですか?
たとえば、サブビューを持つ があり、メソッドUIView
をオーバーロードするとどうなりますか? drawRect
それはサブレイヤーの描画にどのように影響しますか?
同じ関数内で2つを混在させることは良い考えですか?
また、私は iOS についてのみ質問しています。Mac は別の獣であることを理解しています (そして、それらの派手なCIFilters
野郎もいます!)。
先行研究
事前に調査した関連する質問を次に示します。
- Quartz2d、コア グラフィックス、コア アニメーション、コア イメージに関する混乱。この質問は互いの違いを尋ねており、選択された回答は実際に提供されますが、個々のライブラリごとに、他のライブラリが存在しないかのように回答します。
- Drawrect するか、 Drawrect しないか。別の素晴らしい質問ですが、CoreGraphics の描画と問題を UIKit に渡すという主題のみを扱っていますが、とにかく、選択された答えはパズルの一部を提供します。
- カスタム CALayer を使用したパイ スライスのアニメーション化。このテーマで私が見た中で最も価値のあるチュートリアルの 1 つであるに違いありません。
- CoreGraphics と CoreAnimation の違い質問者が回答を受け入れた速さにまったくがっかりしましたが、ここにはもっと多くのことがあると感じています。
- さまざまな WWDC ビデオがありますが、一般的な範囲を詳細に説明しているビデオは見たことがありません。誰かがそうする WWDC ビデオで返信した場合、私はそれを有効な回答と見なします。