대부분의 경우 다음과 같은 방법이 효과적입니다 (패턴 색상 제외). UIColor에 범주로 추가하십시오.
- (void)getRGBA:(CGFloat*)buffer {
CGColorRef clr = [self CGColor];
NSInteger n = CGColorGetNumberOfComponents(clr);
const CGFloat *colors = CGColorGetComponents(clr);
switch (n) {
case 2:
for(int i = 0; i<3; ++i){
buffer[i] = colors[0];
}
buffer[3] = CGColorGetAlpha(clr);
break;
case 3:
for(int i = 0; i<3; ++i){
buffer[i] = colors[i];
}
buffer[3] = 1.0;
break;
case 4:
for(int i = 0; i<4; ++i){
buffer[i] = colors[i];
}
break;
default:
break;
}
}
CMYK 색상 공간이 있지만 아마도 Yaniv는 자신의 앱에서이 색상을 사용하고 있는지 여부를 알고있을 것입니다. –
@robmayoff - CMYK NSColor가 아니고 UIColor가 지원하지 않습니다. – jrturton
하하 나는 더 조심스럽게 조사해야한다. 저는 실제로 OS X 만인'CGColorCreateGenericCMYK'를보고있었습니다. –