3章レイヤ
1章と2章では、UIViewがどのように動作するのか、どのように自分自身を描画するのかについて説明しましたが、これはまだ話の半分にすぎません。UIViewにはレイヤと呼ばれる相棒がいるのです。レイヤの実体は、CALayerのインスタンスです。UIViewは、実際には自分自身をスクリーンではなく、レイヤに描画します。スクリーン上に表示されるのはこのレイヤなのです。すでに説明したとおり、ビューは頻繁に再描画されるわけではありません。そうではなく、描画したものはキャッシュされ、可能な場合は描画キャッシュ(ビットマップバッキングストア)が使われます。描画キャッシュは、実際にはレイヤです。2章でビューのグラフィックスコンテキストについて説明しましたが、それは実際にはレイヤのグラフィックスコンテキストのことだったのです。
これは単なる実装詳細と思われるかもしれませんが、レイヤは重要で興味深いものです。レイヤを理解すれば、ビューの理解も深まります。レイヤは、特に次のような性質を通じて、ビューの能力を拡張します。
- レイヤは描画に影響を与えるプロパティをもつ——レイヤはUIViewよりも強力な描画関連のプロパティをもっています。レイヤはビューの描画の受け手であると同時に表示の担い手でもあるため、レイヤのプロパティにアクセスすることで、スクリーン上にビューをどう描画するかを操作できます。言い換えれば、レイヤのレベルまで降りて行けば、UIViewのメソッドだけではできないようなことをビューにさせることができるのです。
- レイヤは同一ビュー内で結合できる——UIViewの相棒のレイヤには複数のレイヤを追加できます。レイヤの目的は可視の要素をスクリーン上に描画することなので、複数のレイヤをもつことで互いに独立した複数の要素からUIViewの描画を構成することができます。こうすると、描画の各構成要素をオブジェクトとして扱えるため、描画が簡単になります。 ...
Get 詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.