0
모양의 내부를 채우려 고하지만 사용하지 않으려 고합니다. 그것은 길을 칠뿐 색칠하지는 않습니다. 나는 봤지만 아무것도 작동하지 채우기로 작동합니다. 내가 뭘 잘못하고 있는지 안내 해줘.줄의 폭을 유지하는 채우기 내부를 채우기
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddPath(ctx, pathi);
CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextSetFillColorWithColor(ctx, [UIColor yellowColor].CGColor);
CGContextSetLineWidth(ctx, 3.0);
CGContextSetLineCap(ctx, kCGLineCapSquare);
CGContextSetAllowsAntialiasing(ctx, NO);
// CGContextStrokePath(ctx);
CGContextDrawPath(ctx, kCGPathFillStroke);
편집 : pathi에 대한 코드는
는 너무 다른 모양을 만드는 오전 및 경로는 같은 방법으로 만들어}
- (CGMutablePathRef)getPath {
if (self.shapeType == NOSHAPE) {
return nil;
}
[lineHeight removeAllObjects];
[linesArray removeAllObjects];
CGMutablePathRef path = CGPathCreateMutable();
switch (self.shapeType) {
case Rectangle_SHAPE:{
Line *l1 = [[Line alloc] initWithLineName:LineName_a_S
starttPoint:self.bound.origin
endPoint:CGPointMake(self.bound.size.width, self.bound.origin.y) scalingFactor:1.0
linePosition:LINE_DIRECTION_HORIZONTAL];
[lineHeight addObject:[NSNumber numberWithFloat:l1.lineLength]];
[linesArray addObject:l1];
Line *l2 = [[Line alloc] initWithLineName:LineName_c_S
starttPoint:CGPointMake(self.bound.size.width, self.bound.origin.y)
endPoint:CGPointMake(self.bound.size.width, self.bound.size.height) scalingFactor:1.0
linePosition:LINE_DIRECTION_VERTICAL];
[lineHeight addObject:[NSNumber numberWithFloat:l2.lineLength]];
[linesArray addObject:l2];
Line *l3 = [[Line alloc] initWithLineName:LineName_b_S
starttPoint:CGPointMake(self.bound.size.width, self.bound.size.height)
endPoint:CGPointMake(self.bound.origin.x, self.bound.size.height) scalingFactor:1.0
linePosition:LINE_DIRECTION_HORIZONTAL];
[lineHeight addObject:[NSNumber numberWithFloat:l3.lineLength]];
[linesArray addObject:l3];
Line *l4 = [[Line alloc] initWithLineName:LineName_d_S
starttPoint:CGPointMake(self.bound.origin.x, self.bound.size.height)
endPoint:self.bound.origin scalingFactor:1.0
linePosition:LINE_DIRECTION_VERTICAL];
[lineHeight addObject:[NSNumber numberWithFloat:l4.lineLength]];
[linesArray addObject:l4];
CGPathAddPath(path, NULL, [l1 getPath]);
CGPathAddPath(path, NULL, [l2 getPath]);
CGPathAddPath(path, NULL, [l3 getPath]);
CGPathAddPath(path, NULL, [l4 getPath]);
[l1 release];
[l2 release];
[l3 release];
[l4 release];
break;
}
default:
break;
}
return path;
입니다. 라인 클래스는 시작과 끝 지점부터 줄을 제공합니다. 내가 빠진 것이 있는지 알려주세요.
뭘보고 있습니까? 빨간 개요 만? (당신이 실제로보고있는 이미지가 + 유용 할 수 있습니다.) –
빨간색 외곽선. – fibnochi
나는 시도하고 동일한 코드를 사용하여 구분 된 채우기 및 채우기 색을 채울 수있었습니다. 나는 이것을 당신의 "pathi"에 사용했다. CGPathRef pathi = CGPathCreateWithEllipseInRect (CGRectMake (0, 0, 100, 100), nil); 내 생각에 경로가 큰 사각형이 아니거나 채우기 색상을 숨기는 큰 값의 너비 크기를 사용 중입니다. –