色の名前で UIColor を NSString に変換する必要があります。
[UIColor redColor];
なるべき
@"RedColor"
すでに試しまし[UIColor redColor].CIColor.stringRepresentation
たが、コンパイルエラーが発生します
色の名前で UIColor を NSString に変換する必要があります。
[UIColor redColor];
なるべき
@"RedColor"
すでに試しまし[UIColor redColor].CIColor.stringRepresentation
たが、コンパイルエラーが発生します
CIColorに渡すCGColorRefを作成する@Lukeがリンクした答えを拡張するだけです:
CGColorRef colorRef = [UIColor grayColor].CGColor;
代わりに、作業中の UIColor の CGColor プロパティを次のように渡すだけです。
NSString *colorString = [[CIColor colorWithCGColor:[[UIColor redColor] CGColor]] stringRepresentation];
Core Image フレームワークをインポートすることを忘れないでください。
補足として、文字列から UIColor に戻す迅速かつ簡単な方法は、次のようなものです。
NSArray *parts = [colorString componentsSeparatedByString:@" "];
UIColor *colorFromString = [UIColor colorWithRed:[parts[0] floatValue] green:[parts[1] floatValue] blue:[parts[2] floatValue] alpha:[parts[3] floatValue]];
これは、UIColor を NSString に変換する最短の方法です。
- (NSString *)stringFromColor:(UIColor *)color
{
const size_t totalComponents = CGColorGetNumberOfComponents(color.CGColor);
const CGFloat * components = CGColorGetComponents(color.CGColor);
return [NSString stringWithFormat:@"#%02X%02X%02X",
(int)(255 * components[MIN(0,totalComponents-2)]),
(int)(255 * components[MIN(1,totalComponents-2)]),
(int)(255 * components[MIN(2,totalComponents-2)])];
}