我正在尝试MKPolyline
在MKPolylineView
. 到目前为止一切都很好 - 折线按照我想要的方式绘制,并且在我想要它的时候使用以下代码:
[[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 的Quick Help部分发现了这个花絮:
MKPolylineView 类为 MKPolyline 注释对象提供可视化表示。此视图描边由注释表示的路径。(该类不会填充路径所包围的区域。)您可以通过修改继承自MKOverlayPathView 类的属性来改变路径的颜色和其他绘制属性。
这听起来很荒谬。我必须使用这个类来设置填充颜色,但是我不能使用这个类来绘制填充颜色?考虑到它已经画了笔画,这似乎很奇怪。文档中这个解释的最后一行有点不清楚,但似乎提供了一个答案——我只是很难编码/找到答案。我的MKOverlayPathView
项目中没有(那是什么?)但它似乎是解决方案 - 有人知道如何使用它吗?