我试图在我的空心圆圈周围添加一个笔划,但它没有出现。有人可以帮助我,请找出我出错的地方并妥善解决。多年来一直坚持这一点似乎没有任何作用!
这是我运行代码时的目前情况:
我想在空心圆的外面添加一条笔划线,但我的代码不起作用,我不知道我哪里出错了。真的很感激一些帮助。
以下是我的代码:
- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context
{
// Fill full map rect with some color.
CGRect rect = [self rectForMapRect:mapRect];
CGContextSaveGState(context);
CGContextAddRect(context, rect);
CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:255 alpha:0.4f].CGColor);
CGContextFillRect(context, rect);
CGContextRestoreGState(context);
// Clip rounded hole.
CGContextSaveGState(context);
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
CGContextSetBlendMode(context, kCGBlendModeClear);
CGContextFillEllipseInRect(context, [self rectForMapRect:[self.overlay boundingMapRect]]);
CGContextSetLineWidth(context, 1);
CGContextStrokeEllipseInRect(context, [self rectForMapRect:[self.overlay boundingMapRect]]);
CGContextRestoreGState(context);
// Draw circle
[super drawMapRect:mapRect zoomScale:zoomScale inContext:context];
}
固定 - 工作代码:
// Fill full map rect with some color.
CGRect rect = [self rectForMapRect:mapRect];
CGContextSaveGState(context);
CGContextAddRect(context, rect);
CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:255 alpha:0.4f].CGColor);
CGContextFillRect(context, rect);
CGContextRestoreGState(context);
// Clip rounded hole.
CGContextSaveGState(context);
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextSetLineWidth(context, 300);
CGContextStrokeEllipseInRect(context, [self rectForMapRect:[self.overlay boundingMapRect]]);
CGContextSetBlendMode(context, kCGBlendModeClear);
CGContextFillEllipseInRect(context, [self rectForMapRect:[self.overlay boundingMapRect]]);
CGContextRestoreGState(context);
// Draw circle
[super drawMapRect:mapRect zoomScale:zoomScale inContext:context];
答案 0 :(得分:2)
执行此操作:CGContextSetLineWidth(context,1);在应用笔画之前。