코어 그래픽을 사용하여 두 개의 동심원을 그리려합니다. 다음 코드는 파란색 원과 작은 흰색 원을 그릴 것이라고 기대하지만 파란색 원을 그립니다. 내가 뭘 놓치고 있니?코어 그래픽을 사용하여 다중 호 그리기
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextAddArc(c, self.bounds.size.width/2, self.bounds.size.height/2, 100, 0, M_PI * 2, true);
CGContextSetFillColor(c, CGColorGetComponents([[UIColor blueColor] CGColor]));
CGContextFillPath(c);
CGContextAddArc(c, self.bounds.size.width/2, self.bounds.size.height/2, 90, 0, M_PI * 2, true);
CGContextSetFillColor(c, CGColorGetComponents([[UIColor whiteColor] CGColor]));
CGContextFillPath(c);
"컨텍스트는 RGBA입니다."약간 오해의 소지가 있습니다. 컨텍스트가 배경색을 위해 어떤 색 공간을 사용 하느냐가 중요하지 않지만 색 공간을 채우는 것은 중요합니다. (http://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGContext/Reference/ reference.html # // apple_ref/c/func/CGContextSetFillColorSpace)입니다. 기본값은 언급되지 않았습니다. 새로운 문맥을 위해서는 아마도 RGB 나 맥락의 배경 색상 공간 (대개 RGB)이지만,'SetFillColorWithColor','SetRGBFillColor' 등으로 채우기 색상을 설정하면 채우기 색상 공간이 부작용으로 설정됩니다 . –
... 예를 들어'SetFillColorWithColor'를 흰색으로 설정하면 채우기 색상 공간은 흰색 색상 공간이되고 'SetFillColor'는 컨텍스트의 배경색이 RGB 인 경우에도 하나 또는 두 개의 구성 요소 만 필요합니다. –
@PeterHosey : 당연히 iOS 또는 Mac 앱에서 가장 일반적인 경우를 너무 단순화했습니다. CG로 수년간 작업하면서, 채색 공간에 대해 걱정해야한다고 말할 수는 없습니다. 어쩌면 나는 단지 운이 좋았을 것입니다. –