UIColorを使いやすく


UIColor使いにくいなぁと思いながら我慢して使っていましたが、こんな工夫をされている方を見つけました。

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]


になってしまうんですね。

勉強になります。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>