2011-10-20 6 views
0

아래 코드를 사용하여 색상이 그려지는 원의 색을 다 잡으려고 노력하고 있습니다.하지만 내 인생을 생각할 수는 없습니다. 누구든지 도와 줄 수 있습니까? 내 방법에서 그리는 원을 어떻게 색칠하나요? 당신은 현재의 경로를 채우기 위해 노력하고CGrect에서 색상 공간을 채우는 방법

-(void)drawCircleAtPoint:(CGPoint)p withRadius:(CGFloat)radius inContext:(CGContextRef)context 
{ 
    UIGraphicsPushContext(context); 
    CGContextBeginPath(context); 
    CGContextAddArc(context, p.x, p.y, radius, 0, 2*M_PI, YES); 
    CGContextStrokePath(context); 
    UIGraphicsPopContext(); 
} 

- (void)drawRect:(CGRect)rect 
{ 
    CGPoint midPoint; 
    midPoint.x = self.bounds.origin.x + self.bounds.size.width/2; 
    midPoint.y = self.bounds.origin.y + self.bounds.size.width/2; 

    CGFloat size = self.bounds.size.width/2; 
    if (self.bounds.size.height < self.bounds.size.width) size = self.bounds.size.height/2; 
    size *= 0.90; 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetLineWidth(context, 10.0); 
    [[UIColor blackColor] setStroke]; 

    CGColorRef color = [[UIColor redColor] CGColor]; 
    CGContextSetFillColorWithColor(context, color); 
    CGContextFillPath(context); 

    [self drawCircleAtPoint:midPoint withRadius:size inContext:context]; 
} 

답변

0

,하지만 당신은 아직 아무것도 추가하지 않은 :

는 내가 지금까지 가지고하는 것은 이것이다. 현재 경로에 아무 것도 추가하지 않는 유일한 점은 drawCircleAtPoint:withRadius:inContext:이며, 그 이후에만 획을 긋습니다.

CGContextFillPath 전화를 해당 방법으로 이동하십시오. 스트로크가 현재 경로를 재설정하므로 스트로크 전에 채우기를 원할 것입니다. (뇌졸중 내부를 채우고 싶다면 스트로크 및 복원 전에 gstate를 저장해야하므로 채울 때 현재 경로가 계속 설정됩니다.)

+0

멋지 네요. 포인터 주셔서 감사. 그것은 지금 명백하다! :) – Hoppo

관련 문제