Есть ли более быстрый (или лучший) способ получить компоненты цвета [RGBA] из Цвет пользовательского интерфейса? Кажется, есть много вариантов этого (некоторые здесь, все по существу похожи на то, что я сделал здесь). Мне просто любопытно, есть ли альтернатива, поскольку она кажется немного «недостаточной», учитывая, что все остальное обычно так завершена и хорошо продумана.
if([eachKey isEqualToString:@"NSColor"]) {
UIColor *newColor = [attrs valueForKey:eachKey];
//NSLog(@"COLOR: %@", newColor);
CGColorRef colorRef = [newColor CGColor];
//NSLog(@"%@", colorRef);
int numComponets = CGColorGetNumberOfComponents(colorRef);
if(numComponets == 4) {
const CGFloat *components = CGColorGetComponents(colorRef);
CGFloat compR = components[0];
CGFloat compG = components[1];
CGFloat compB = components[2];
CGFloat compA = components[3];
//NSLog(@"R:%f G:%f B:%f, A:%f", compR, compG, compB, compA);
}
}
Я не ищу, как (кажется, у меня есть длинная версия выше), я просто хотел бы знать, как вы должны это сделать сейчас?