muszę konwertować UIColor do NSString z nazwą koloru tjObjective C UIColor do NSString
[UIColor redColor];
powinna stać
@"RedColor"
Ja już próbowałem [UIColor redColor].CIColor.stringRepresentation
ale powoduje błąd kompilatora
muszę konwertować UIColor do NSString z nazwą koloru tjObjective C UIColor do NSString
[UIColor redColor];
powinna stać
@"RedColor"
Ja już próbowałem [UIColor redColor].CIColor.stringRepresentation
ale powoduje błąd kompilatora
Po prostu rozwijając odpowiedź, której @Luke powiązał z którym tworzy CGColorRef do przekazania do CIColor:
CGColorRef colorRef = [UIColor grayColor].CGColor;
Można by zamiast po prostu przekazać własność CGColor z UIColor pracujesz na niczym:
NSString *colorString = [[CIColor colorWithCGColor:[[UIColor redColor] CGColor]] stringRepresentation];
Nie zapomnij importować ramy Rdzeń obrazu.
marginesie, to szybki i łatwy sposób przekonwertować z powrotem do UIColor z łańcucha może być coś takiego:
NSArray *parts = [colorString componentsSeparatedByString:@" "];
UIColor *colorFromString = [UIColor colorWithRed:[parts[0] floatValue] green:[parts[1] floatValue] blue:[parts[2] floatValue] alpha:[parts[3] floatValue]];
To nie da mu "GrayColor", o co prosił. – rdelmar
@rdelmar Interesujące, domyślam się, że przeskoczyłem ten szczegół ... szukając ... –
Próbowałem zarówno tego, jak i łącza, ale oba z nich zwróciły równoważnik rgb + alpha. Chcę znać nazwę koloru, aby [kolor żółtozielony] zwracał kolor biały NOT 1 1 1 – Alex
Jest to najkrótsza droga do konwersji UIColor do 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)])];
}
Zobacz najlepiej ocenioną odpowiedź tutaj; może pomóc: http://stackoverflow.com/questions/1748350/how-to-convert-uicolor-value-to-nsstring – Luke
Nie możesz robić tego, czego chcesz, bez pisania własnej metody. Odpowiedzi wskazujące, że ludzie zamierzają dać ci coś w rodzaju "1 0 0 1" lub "UIDeviceRGBColorSpace 1 0 0 1". – rdelmar
Jak chcesz uzyskać tę nazwę koloru - czyli w jaki sposób zamierzasz z niej korzystać? – rdelmar