Лучший способ получить цветовые компоненты RGBA из UIColor?

Есть ли более быстрый (или лучший) способ получить компоненты цвета [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);
    }
}

Я не ищу, как (кажется, у меня есть длинная версия выше), я просто хотел бы знать, как вы должны это сделать сейчас?

6
задан fuzzygoat 28 June 2012 в 18:15
поделиться

0 ответов