iOS 7 MKMapView:使用2种替代颜色绘制路径。

时间:2014-03-30 21:07:51

标签: objective-c ios7 mkmapview mapkit

MKMapView上,我需要绘制多条路径。每个“Mega”路径都有自己的颜色。

每个“Mega”路径都在子路径中划分。有时候2 Mega-path共享一个子路径。

我想用一些虚线替换颜色绘制这些子路径。

知道怎么做吗?

我现在拥有的只能画一种颜色:

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
    if(overlay == self.routeLine){

        MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.routeLine];
        lineView.strokeColor = [UIColor redColor];
        lineView.lineWidth = 5;

        return lineView;
    }

    return nil;
} 

2 个答案:

答案 0 :(得分:0)

您可以按照

设置lineView.lineDashPattern和lineView.lineDashPhase

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKOverlayPathRenderer_class/Reference/Reference.html#//apple_ref/doc/uid/TP40013136-CH1-SW21

得到一条虚线。

我在我的应用程序中所做的是用实线绘制路径,然后用虚线再次绘制它以获得交替的颜色。

答案 1 :(得分:0)

另一种方法是对渲染器进行子类化,并自己手动将Core Graphics绘制到提供的CGContext中。