菜鸟教程小白 发表于 2022-12-12 16:58:28

ios - MKMapView : can't display stroked ellipse 中的自定义核心图形覆盖


                                            <p><p>我正在尝试在 MKMapView 中绘制一系列同心圆作为自定义叠加层。请注意,出于性能原因,我需要实现一个自定义绘制方法,而不是简单地添加一系列 MKCircleViews。</p>

<p>我有以下代码,但我不知道为什么我可以看到填充的圆圈,但是当我尝试绘制空圆圈(即仅笔划轮廓)时,我什么也看不到。</p>

<pre><code>- (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context {
// draw series of concentric circles

// I have tried all manner of line widths
CGContextSetLineWidth(context, 5.0);

CGContextSetFillColorWithColor(context, .CGColor);
CGContextSetStrokeColorWithColor(context, .CGColor);

float radius;

for (int i = 1; i &lt; self.numberOfRings+1; i++) {

    //code to calculate the radius here using i
    // but this is fine, set to 1000 metres
    radius = 1000.0;

    // centre of circles
    CLLocationCoordinate2D centre = {latitude: self.latitude, longitude: self.longitude};

    // create circle of appropriate geographical dimensions
    MKCircle *circle = ;

    // the next two lines don&#39;t work, I don&#39;t see anything drawn
    CGContextStrokeEllipseInRect(context, ] );
    CGContextStrokePath(context);

    // but the dimensions of the rect are ok, because I see the filled in rect (below) perfectly if I uncomment this next line
    //      CGContextFillEllipseInRect(context, ] );

    }
}
</code></pre>

<p>请问,我到底应该怎么做才能显示描边的图像?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>啊哈,终于……</p>

<p>答案是在绘制之前需要这样设置线宽:</p>

<pre><code>CGContextSetLineWidth(context, 0.5 * MKRoadWidthAtZoomScale(zoomScale));
</code></pre>

<p>不知道为什么会这样,但你不能只为线宽设置任何值。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - MKMapView : can&#39;t display stroked ellipse 中的自定义核心图形覆盖,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/6912511/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/6912511/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - MKMapView : can&#39;t display stroked ellipse 中的自定义核心图形覆盖