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);
}
}
私はどのように(私は上記の長いバージョンを持っていると思います)これがあなたが今これをすることになっている方法であるかどうか知りたいだけです。