2013-12-08 3 views
0

나는 다음과 같은 코드를 실행하는 경우 : 적색, 녹색, 청색 반환 각각 0의CGColorComponents 블랙 반환 (0, 0, 0)에 대한 UIColor whiteColor

CGColorRef cgcolor = [[UIColor whiteColor] CGColor]; 

int numComponents = CGColorGetNumberOfComponents(cgcolor); 

CGFloat red = 0, green = 0, blue = 0; 

if (numComponents >= 3) 
{ 
    const CGFloat *components = CGColorGetComponents(cgcolor); 
    red = components[0]; 
    green = components[1]; 
    blue = components[2]; 
} 

NSLog를; 그러나 다른 색상을 지정하면 표시 할 색상이 표시됩니다.

왜 이런가요?

답변

3

흰색과 검정색은 (빨강, 초록, 파랑) 반대로 단색 색상 공간 (검정/흰색, 알파)을 사용하여 표현됩니다. NSLognumComponents이면 2이 반환되므로 if 블록이 실행되지 않습니다.

+0

오, 알겠습니다. 고마워요! – David