단순한 모양의 경우 CoreGraphics를 사용하여 정사각형과 원을 그리면 구현시 채우기 색상을 설정할 수있는 기능이 추가됩니다.
그냥 흑백 인 경우 색을 잘 아는 경우 흰색을 다른 색으로 변경하는 것이 그리 어렵지 않습니다. 안타깝게도이 방법은 작성하고 실행하기가 더 복잡합니다 ... 제가 추천 한 것은 CoreGraphics로 바로 간략한 작업을 위해 곧바로 진행하는 것입니다 (나쁜 말장난, 미안).
static void InsetRect(CGRect* const pRect, const CGFloat pAmount) {
const CGFloat halfAmount = pAmount * 0.5f;
*pRect = CGRectMake(pRect->origin.x + halfAmount, pRect->origin.y + halfAmount, pRect->size.width - pAmount, pRect->size.height - pAmount);
}
static void DrawBorderedCircleWithWidthInContext(const CGRect pRect, const CGFloat pWidth, CGContextRef pContext) {
CGContextSetLineWidth(pContext, pWidth);
CGContextSetShouldAntialias(pContext, true);
CGRect r = pRect;
/* draw circle's border */
CGContextSetRGBStrokeColor(pContext, 0.8f, 0.7f, 0, 1);
InsetRect(&r, pWidth);
CGContextStrokeEllipseInRect(pContext, r);
/* draw circle's fill */
CGContextSetRGBFillColor(pContext, 0, 0, 0.3f, 1);
InsetRect(&r, pWidth);
CGContextFillEllipseInRect(pContext, r);
}
당신은 당신의 drawRect에서 원을 그리거나 이미지의 어떤 종류를 사용하고 있음을 의미합니까? –
CoreGraphics를 사용하여 동적으로 또는 검정색의 흰색 버전을 색칠하여 UIColor'd 원과 검은 색 테두리가있는 24x24 크기의 UIImage를 만들 필요가 있습니다. –