我已经通过路径坐标实现了地板绘制,并且我还需要在主路径中填充另一条路径,并且应该在内部路径中显示透明颜色。我试过填充透明色,然后内部路径显示外部路径的颜色。但是如何清除外部路径创建的外部路径区域以显示viewController.view的背景?
任何建议都会很明显。
Here is the screenshot with inner & outer path
if([[self.arPoints objectAtIndex:iCount] objectForKey:@"CoordsOuter"])
{
self.levelPointInfo = [[self.arPoints objectAtIndex:iCount] objectForKey:@"CoordsLine"];
self.levelPointInfo=[self.levelPointInfo substringFromIndex:1];
self.levelPointInfo=[self.levelPointInfo substringToIndex:[self.levelPointInfo length]-2];
self.arLevelPoints=[self.levelPointInfo componentsSeparatedByString:@");("];
startPoint=CGPointMake([[[[self.arLevelPoints objectAtIndex:0] componentsSeparatedByString:@";"] objectAtIndex:1] floatValue], [[[[self.arLevelPoints objectAtIndex:0] componentsSeparatedByString:@";"] objectAtIndex:2] floatValue]);
for(int jCount=1; jCount<[self.arLevelPoints count];++jCount)
{
@autoreleasepool {
endPoint = CGPointMake([[[[self.arLevelPoints objectAtIndex:jCount] componentsSeparatedByString:@";"] objectAtIndex:1] floatValue], [[[[self.arLevelPoints objectAtIndex:jCount] componentsSeparatedByString:@";"] objectAtIndex:2] floatValue]);
//CGContextSaveGState(context);
CGContextSetLineCap(context, kCGLineCapSquare);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextSetLineWidth(context, LINE_WIDTH);
CGContextMoveToPoint(context,( (startPoint.x-minX)/((maxX-minX)/(self.frame.size.width-(2*paddingX)))+(paddingX) )/self.scaleValue,(self.frame.size.height - ( (startPoint.y-minY)/((maxY-minY)/(self.frame.size.height-(2*paddingY)))+(paddingY)))/self.scaleValue);
CGContextAddLineToPoint(context,( (endPoint.x-minX)/((maxX-minX)/(self.frame.size.width-(2*paddingX)))+(paddingX))/self.scaleValue, (self.frame.size.height - ((endPoint.y-minY)/((maxY-minY)/(self.frame.size.height-(2*paddingY)))+(paddingY)))/self.scaleValue);
CGContextSetFillColorWithColor(context, [UIColor yellowColor].CGColor);
CGContextStrokePath(context);
//CGContextRestoreGState(context);
startPoint = endPoint;
}
}
}
if([[self.arPoints objectAtIndex:iCount] objectForKey:@"CoordsInner"])
{
self.levelPointInfo = [[self.arPoints objectAtIndex:iCount] objectForKey:@"CoordsMinus"];
self.levelPointInfo=[self.levelPointInfo substringFromIndex:1];
self.levelPointInfo=[self.levelPointInfo substringToIndex:[self.levelPointInfo length]-2];
self.arLevelPoints=[self.levelPointInfo componentsSeparatedByString:@");("];
CGPoint firstPoint;
for(int jCount=0; jCount<[self.arLevelPoints count];++jCount)
{