[iOS] CGLayerとCALayerってどう違うのよ?

2013/05/31

こんにちは。きんくまです。

画面をキャプチャしたいなと思って、調べてました。

>> iphone – Need to capture UIView into a UIImage, including all subviews – Stack Overflow

やり方はリンク先に書いてあるのを参照すれば大丈夫でした。

それで、コードを実際に書いていて、CALayerとCGLayerというのが存在しているのに気がつきました。

あれ、どっちも使ってる気がしてるけど、そういえば深く考えたことなかったな。

これ何が違うの???

CGLayerとCALayerの違い

で、調べたところずばり書いてありました。すばらしい!

>> cocoa – What’s the difference and compatibility of CGLayer and CALayer? – Stack Overflow

Joe Blowさんの回答をまとめますと、


はじめに CGLayerとCALayerは全く関係がない!

CGLayer
オフスクリーン用。画面に表示されることはない。
Appleが用意した画像演算のための高性能な機能。
演算用。

CALayer
オンスクリーン用。画面に表示されるためのもの。
表示用。

だそうです。補足すると、CGLayerはCore Graphicsに関係していて、CALayerはCore Animationに関係してます。
という目でリファレンスを見てみるとたしかに、CGLayerはLayerをスタンプみたいに画像に書き出したりするメソッドだったり、CALayerは表示目的のプロパティが並んでいることがわかります。

>>CGLayer Reference

>> CALayer Class Reference

ということでした。
これ豆な


自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る