1

MapView のオーバーレイ ビューのパスをストロークして塗りつぶそうとしています。塗りつぶしが機能するようになりましたが、ストロークは機能しません...以下のコードを見て何かアイデアはありますか?

- (void)drawMapRect:(MKMapRect)mapRect
          zoomScale:(MKZoomScale)zoomScale
          inContext:(CGContextRef)ctx
{    
    CGContextSetRGBStrokeColor(ctx, 1.0, 0.0, 0.0, 0.8);
    CGContextSetRGBFillColor(ctx, 0.0, 0.0, 0.8, 0.4);

    CGContextSetLineCap(ctx, kCGLineCapRound);
    CGContextSetLineWidth(ctx, 8.0);

    CGPoint pt;
    pt = [self pointForMapPoint:MKMapPointForCoordinate(CLLocationCoordinate2DMake(0, 0))];
    CGContextMoveToPoint(ctx, pt.x, pt.y);

    pt = [self pointForMapPoint:MKMapPointForCoordinate(CLLocationCoordinate2DMake(-2, 3))];
    CGContextAddLineToPoint(ctx, pt.x, pt.y);

    pt = [self pointForMapPoint:MKMapPointForCoordinate(CLLocationCoordinate2DMake(-2, 5))];
    CGContextAddLineToPoint(ctx, pt.x, pt.y);

    pt = [self pointForMapPoint:MKMapPointForCoordinate(CLLocationCoordinate2DMake(-4, 4))];
    CGContextAddLineToPoint(ctx, pt.x, pt.y);

    CGContextDrawPath(ctx, kCGPathFillStroke);
}
4

1 に答える 1

1

これでうまくいきました...

CGContextSetLineWidth(ctx, 1 * MKRoadWidthAtZoomScale(zoomScale));
于 2012-09-15T16:56:33.280 に答える