[UIColor whiteColor]
и [UIColor blackColor]
используйте [UIColor colorWithWhite:alpha:]
для создания UIColor. Это означает, что этот CGColorRef имеет только 2 цветовых компонента, а не 4 как цвета, созданные с помощью [UIColor colorWithRed:green:blue:alpha:]
.
Конечно, вы тоже можете NSLog.
if (CGColorGetNumberOfComponents(myColorRef) == 2) {
const CGFloat *colorComponents = CGColorGetComponents(myColorRef);
NSLog(@"r=%f, g=%f, b=%f, a=%f", colorComponents[0], colorComponents[0], colorComponents[0], colorComponents[1]);
}
else if (CGColorGetNumberOfComponents(myColorRef) == 4) {
const CGFloat * colorComponents = CGColorGetComponents(myColorRef);
NSLog(@"r=%f, g=%f, b=%f, a=%f", colorComponents[0], colorComponents[1], colorComponents[2], colorComponents[3]);
}
else {
NSLog(@"What is this?");
}
Имейте в виду, что существуют также разные цветовые пространства. Поэтому, если вам нужен этот код не только для регистрации (например, для сохранения строк RGBA в json), вы должны также проверить (и, вероятно, преобразовать) colorSpace.