Objective C UIColor到NSString

Ale*_*lex 5 objective-c nsstring uicolor ios ios6

我需要将UIColor转换为具有颜色名称的NSString,即

[UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

应该成为

@"RedColor"
Run Code Online (Sandbox Code Playgroud)

我已经尝试[UIColor redColor].CIColor.stringRepresentation 但它会导致编译器错误

Mic*_*lum 9

只是扩展@Luke链接到的答案,创建一个CGColorRef传递给CIColor:

CGColorRef colorRef = [UIColor grayColor].CGColor;  
Run Code Online (Sandbox Code Playgroud)

您可以简单地传递您正在处理的UIColor的CGColor属性,如:

NSString *colorString = [[CIColor colorWithCGColor:[[UIColor redColor] CGColor]] stringRepresentation];
Run Code Online (Sandbox Code Playgroud)

不要忘记导入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]];
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了这个和链接,但他们都返回了rgb + alpha等价物.我想知道颜色的名称,所以[uicolor whitecolor]将返回白色NOT 1 1 1 1 (2认同)