スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]UIColorをNSLogで吐き出す処理

色の数値を取得するには、CGColorGetComponents関数を利用すると配列で入ってくるようです。

//CGColorGetComponents関数によるNSFloat配列取得
const CGFloat* components = CGColorGetComponents(uicolor.CGColor);
NSLog(@"Red: %f", components[0]);
NSLog(@"Green: %f", components[1]);
NSLog(@"Blue: %f", components[2]);
NSLog(@"Alpha: %f", CGColorGetAlpha(uicolor.CGColor));


文字の色が知りたい時に便利です。

追記:(20120227)
上記だけでは表示出来ないパターンがあるようです。
//こちらがおそらく完全なソースです
const int numComponents = CGColorGetNumberOfComponents(uicolor.CGColor);
const CGFloat *components = CGColorGetComponents(uicolor.CGColor);
if (numComponents == 4) {
NSLog(@"Red: %f", components[0]);
NSLog(@"Green: %f", components[1]);
NSLog(@"Blue: %f", components[2]);
NSLog(@"Alpha: %f", CGColorGetAlpha(uicolor.CGColor));
} else {
NSLog(@"Red: %f", components[0]);
NSLog(@"Green: %f", components[0]);
NSLog(@"Blue: %f", components[0]);
NSLog(@"Alpha: %f", components[1]);
}


詳細は不明ですが、UIColorのwhiteColorとblackColorに特別な処理が入ってるようですので、このような分岐処理が必要となるとのことです。


参考URL1:How do i get red green blue and alpha back from a UIColor object?
参考URL2:UIColorからrgb(+α)値を取得
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。