我试图在一个MKPolylineView
画出一个漂亮的MKPolyline
。一切都进行得很顺利,到目前为止 - 折线画就像我希望它时,我希望它用下面的代码:绘制MKPolyline填充颜色
[[self map] addOverlay:routeLine];
而且这个方法告诉应用程序如何绘制:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKOverlayView* overlayView = nil;
self.routeLineView = [[MKPolylineView alloc] initWithPolyline:[self routeLine]];
[[self routeLineView] setFillColor:[UIColor colorWithRed:167/255.0f green:210/255.0f blue:244/255.0f alpha:1.0]];
[[self routeLineView] setStrokeColor:[UIColor colorWithRed:0/255.0f green:136/255.0f blue:255/255.0f alpha:1.0]];
[[self routeLineView] setLineWidth:15.0];
[[self routeLineView] setLineCap:kCGLineCapRound];
overlayView = [self routeLineView];
return overlayView;
}
因此,我得到一个坚实的蓝色线。然而,我所看到的蓝色不是我期待的笔画的填充颜色 - 它是笔画颜色的蓝色。当我使用这种方法时没有填充颜色。 为什么不在多段线上绘制填充颜色?
进一步调查后,我发现这个信息珍闻在Xcode的快速帮助部分:
的MKPolylineView类提供一个MKPolyline注释对象的视觉表示。该视图触发注释表示的路径。 (此类不填充由路径包围的区域。)可以通过修改从MKOverlayPathView类继承的属性改变路径的颜色和其他绘制属性。
这只是听起来很可笑。我不得不使用这个类来集填充颜色,但我不能使用此类画填充颜色?这看起来很奇怪,因为它已经画出了中风。从文档的解释中最后一行有点不清楚,但似乎提供了一个答案 - 我只是很难编码/找到答案。我的项目中没有MKOverlayPathView
(这是什么?)但是它似乎是解决方案 - 有谁知道如何使用它?
'MKPolylineView'是MKOverlayPathView'的'的子类。无论如何,你只是想使用'MKPolygon'(并创建相关的'MKPolygonView')而不是'MKPolyline'。 'MKPolygon'绘制中风和填充。 – Rob 2013-02-16 22:44:55