UIColorを使いやすく
- 2012年11月21日
- iOSアプリ開発
UIColor使いにくいなぁと思いながら我慢して使っていましたが、こんな工夫をされている方を見つけました。
Prefix.pch ファイルに
#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]
#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
を追加するという、ただそれだけで
UIColor * lineColor = RGB(153,153,255);
とか、
UIColor * foreColor = RGB(0x1e,0x90,0xff);
のように記述できるという。
便利そうなのでしばらく使ってみよう。
# Prefix.pchファイルの存在を今まで知らなかったというのは内緒。
==========追記(2013/01/03)==========
こんな記事を見つけました。
Objective-Cでよく使う便利マクロを10個集めてみた #iOS #iPhone #Objective-C #AdventCalendar – Qiita
この記事の中で同じようなUIColor用のマクロがありました。
#define RGB(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1] #define RGBA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)]
私が最初に見つけたサイトにあったマクロとの違いは、引数にカッコがついていること。
こちらの記事の方も最初はカッコをつけていなかったようですが、コメントで指摘があったようです。
カッコをつけないと
RGB(200 + 55, 200 + 55, 200 + 55)
のような使い方をするときに、意図した通りにならず
[UIColor colorWithRed:200+55/255.0 green:200+55/255.0 blue:200+55/255.0]
になってしまうんですね。
勉強になります。