Danke für die Richtung Willster. Für alle, die Graustufenfarbe verwenden (erstellt mit colorWithWhite:alpha:
), können Sie im folgenden Codebeispiel den Weißwert ermitteln (die HSV-Methode funktioniert nicht für Farben, die auf diese Weise erstellt wurden).
CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0, white = 0.0;
// This is a non-RGB color
if(CGColorGetNumberOfComponents(self.color.CGColor) == 2) {
[self.color getWhite:&white alpha:&alpha];
}
else {
// iOS 5
if ([self.color respondsToSelector:@selector(getRed:green:blue:alpha:)]) {
[self.color getRed:&red green:&green blue:&blue alpha:&alpha];
} else {
// < iOS 5
const CGFloat *components = CGColorGetComponents(self.color.CGColor);
red = components[0];
green = components[1];
blue = components[2];
alpha = components[3];
}
}
OK wird dies in einem Moment versuchen, danke –
Warum ist "behalten" hier erforderlich? Auch kann ich nur scheinen, um 2 (nicht 4) Komponenten zu bekommen. – Susanna
FYI, Susanna, Graustufenfarben zeigen sich als nur 2 Komponenten. – davidcann