UIColorを使いやすくするマクロ

UIColorのイニシャライザの引数は実数(255を1.0とした割合を0.0〜1.0)で指定する。この方法だと直感的ではないし、何より非常に解りにくい。

UIColor* color = [UIColor colorWithRed:1.0 green:0.647 blue:0.0 alpha:1.0]; //orange

あーもう変換のためのユーティリティでも書こうかなと思っていたのだが、もっとスマートに解決している方がいた。
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* color = RGB(255, 165, 0); //orange

JavaのAPTのようなものがObjective-Cでも欲しいよなぁと常々思っていたことがあるのだが、(Cには)マクロという枯れているプリプロセッサがあるじゃないか。 私ももっと有効活用しないとなぁ。