親切すぎるiPhoneアプリ開発の本

CALayerに独自の外観を持たせるには? - contentsの直接加工

Icon comment count 0
Icon stock count 0

4 contentsの直接加工

残るは「3.CGImageを作成しcontentsプロパティに直接設定する」方法です。CGImageはUIKitフレームワークを使って作成する方法や、CGContextの派生クラスであるCGBitmapContextを作って作成する方法などがあります。

4.1 UIKitフレームワークを使ったCGImageの作成

ここでは簡単なUIKitを使う方法を紹介し、CGBitmapContextは別のステップで紹介します。

UIKitではオフスクリーンをUIImageクラスで管理しています。そしてUIImageにはCGImageを提供するためのCGImageプロパティが用意されています。そのため、まずUIImageインスタンスを作成し、そこからCGImageプロパティを通してCGImageを取り出して、これを直接CALayerのcontentsプロパティに設定できます。

【UIImageクラス】

UIKitで画像(オフスクリーン)を管理するクラス。

注意)UIImageはUIKitで使いやすいようにCGImageを覆ったクラスと考えてもよいでしょう。これには、先にMac用としてCGContextやCGImageによる描画用フレームワーク(Core Graphics)があり、その後、iOS用にUIKitフレームワークが用意されたという歴史的な経緯も関係するように思えます。UIColorにCGColorプロパティが用意されているところなども、同じ理由ではないでしょうか

UIImageインスタンス自体は、後述するUIGraphicsBeginImageContextでオフスクリーンを作成し、そこに描画をおこない、UIGraphicsGetImageFromCurrentImageContextで、そのオフスクリーンからUIImageを作り出すという形で作成します。</

出典情報

Medium

親切すぎるiPhoneアプリ開発の本

  • 著者: 國居 貴浩

コメント

    コメントはありません