2014/01/27

色関連の便利メソッドを集めたiOSライブラリColours

ColoursUIColorと16進文字列との相互変換メソッドなどの便利メソッドを集めたライブラリです。 iOS7でのシステム色を含めた定義色100個などもあります。

定義済み色

UIColor* color = UIColor.infoBlueColor;

UIColorと16進文字列との相互変換

UIColor* color = [UIColor colorFromHexString:@"#c87ec4"];
NSString* hexString = color.hexString;

UIColorとRGBAの配列およびディクショナリとの相互変換

UIColor* color = UIColor.infoBlueColor;
NSArray* rgba  = color.rgbaArray;

NSArray* rgba2  = @[@1.0, @0.8, @0.25, @1];
UIColor* color2 = [UIColor colorFromRGBAArray:rgba2];

実行結果は次の通り。

(lldb) po color
UIDeviceRGBColorSpace 0.184314 0.439216 0.882353 1
(lldb) po rgba
<__NSArrayI 0xa899f40>(0.1843137,0.4392157,0.8823529,1)
(lldb) po rgba2
<__NSArrayI 0xa899f60>(1,0.8,0.25,1)
(lldb) po color2
UIDeviceRGBColorSpace 1 0.8 0.25 1

これの、ディクショナリ版 (RGBAにはそれぞれ、キー @"r", @"g", @"b", @"a"でアクセスできる)もあります。

UIColor* color     = UIColor.infoBlueColor;
NSDictionary* rgba = color.rgbaDictionary;

NSDictionary* rgba2 = @{@"r":@1.0, @"g":@0.8, @"b":@0.25, @"a":@1};
UIColor* color2     = [UIColor colorFromRGBADictionary:rgba2];

UIColorとHSBAの配列およびディクショナリとの相互変換

上記RGBAのHSBA版です。

UIColor* color = UIColor.infoBlueColor;
NSArray* hsba  = color.hsbaArray;

NSArray* hsba2  = @[@1.0, @0.8, @0.25, @1.0];
UIColor* color2 = [UIColor colorFromHSBAArray:hsba2];

UIColor* color3     = UIColor.infoBlueColor;
NSDictionary* hsba3 = color3.hsbaDictionary;

NSDictionary* hsba4 = @{@"h":@1.0, @"s":@0.8, @"b":@0.25, @"a":@1};
UIColor* color4     = [UIColor colorFromHSBADictionary:hsba4];

その色に適した (文字色のための) 白か黒の取得

背景色に応じた文字色として白か黒のどちらかが欲しいときのメソッドもあります。

UIColor* comp = UIColor.infoBlueColor.complementaryColor;

実行結果は次の通り。

(lldb) po UIColor.infoBlueColor
UIDeviceRGBColorSpace 0.184314 0.439216 0.882353 1
(lldb) po UIColor.infoBlueColor.blackOrWhiteContrastingColor
UIDeviceWhiteColorSpace 1 1

色相による補色の取得

色相のみを180度反転させた色を取得できます。

UIColor* comp = UIColor.infoBlueColor.complementaryColor;

ただし、現状バグがあるようで正常に動作しません。

色スキームの取得

指定した色をキーとした色スキームを生成します。

// colorScheme.count == 4
NSArray* colorScheme = [color colorSchemeOfType:ColorSchemeAnalagous];

次の例は黄色を色スキームとした場合の結果です。右4つがこのメソッドの結果で得られる配列になります。

インストール

pod 'Colours'

関連リンク

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。