2012年5月14日月曜日

CATextLayer

最近iphoneアプリをチョコチョコとやっております。

案件と平行して、自習がてら何かアプリでもリリースしようかなと思い、適当に何か作ってるのですが、結構機能が豊富だし、扱いが似てるようで違ったり、色々と奥が深いです。

制作ポリシーとして、描画周りはメモリ節約と高速化、管理の簡便さを背景としてCALayerで殆ど処理しています。で、画像を扱う場合はweb上に色々と事例が転がっていたんですが、CATextLayerになると途端に情報が少なくなって、ちょっとした事でドハマしたりしたので、ちょっとメモしておきます。

CALayerはUIView以下にaddsublayerして、描画するレイヤーを重ねることが出来ますが、UIViewの下には基本、一層のレイヤーのみが存在し、そのレイヤー以下にsublayerをaddしていくという仕組みらしいです。(間違ってたらご容赦。)

で、Layerはkeyとかで管理しないと、どのレイヤーがどのレイヤーか良くわからなくなってしまうので、色々とアレなんですが、まだkeyで管理する方法を試してなくて、objectAtIndexとかで、追加された順番毎に設定していたりします。

CATextLayerを使う場合、他にCALayerと混在したりする場合が多そうなのですが、CATextLayerは普通に。contentsとか通りません。内容を変更したい場合は、hoge.stringとかで指定します。

普通、動的に画面遷移せず文字情報を変更したりする場合、UILabelとかを使うのかなと思いますが、一々再描画が必要だったり、なんか気に入らないので、みんなもCATextLayerを使うと良いと思います。

作ったアプリは自作の物は、後々こちらで公開します。