どうも。
手始めの覚え書き。
デザイナーは色をhexで指定してくることが多い。
ので、
何らかの形で、
それを変換してやる必要があったりする(´・ω・`)
utilみたいなクラスに置いておくか、
UIColorのカテゴリにするとか、
汎用化する方法はいくつかあるけど、
とりあえずutilクラスにクラスメソッドとして実装するとすれば…。
// 16進の文字列からUIColorを得る
+ (UIColor *)colorWithHexString:(NSString *)hex alpha:(CGFloat)alpha {
NSScanner *colorScanner = [NSScanner scannerWithString:hex];
unsigned int color;
if (![colorScanner scanHexInt:&color]) {
return nil;
}
CGFloat R = ((color & 0xFF0000) >> 16) / 255.0f;
CGFloat G = ((color & 0x00FF00) >> 8) / 255.0f;
CGFloat B = (color & 0x0000FF) / 255.0f;
return [UIColor colorWithRed:R green:G blue:B alpha:alpha];
}
http://sumihiro3.blog.fc2.com/blog-entry-13.html
のようなサービスもあるけど、
アプリを一本作っていく過程で、
毎度毎度変換をかましているのでは、
疲れるし、
[UIColor colorWithRed:0.9255f green:0.3059f blue:0.8353f alpha:1.0000f];
のようなコードが散在するのでは、
ソースのメンテナンス性も落ちる。
デザイナーとのI/Fという意味でも、
16進で指定できる方法を持っておく方がよさそう。
それでは。
ちゃお☆
まこぴー。