RGB/RGBA指定でUIColorを作成

iOSのUIColorをRGBで指定する場合、各色の範囲は0-255で指定するのではなく、0.0-1.0のfloat指定なので非常に使いにくいです。

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

これだと、RGBでの色を指定するのに、

UIColor *orangeRed = [UIColor colorWithRed:255/255.0 green:69/255.0 blue:0/255.0 alpha:1.0];  

と書かないといけなく、使い勝手が悪いです。そこで、

UIColorでRGBを使用する
UIColorのRGBマクロ

などのエントリーを参考に、こんなマクロを用意して、

#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)/255.0]

こんな風につかっていました。

UIColor *orangeRed = RGB(255, 69, 0);  
UIColor *khaki = RGB(176, 110, 53);  

Objective-Cのcategoryの機能を使って格好よくUIColorの拡張メソッドを用意できないかと思っていろいろ試してみましたが、Objective-Cの引数指定方式だと、どうしても既存のcolorWithRedとダブるので、あきらめてマクロのままUIColor-RGB.hというファイルを作成して使うことにしました。せっかくなのでgithubにファイルを上げておきます。

github: UIColor-RGB

ご興味のあるかたは是非どうぞ。