ios – MKMapView – 没有调用rendererForOverlay

我最近开始学习objectiveC,并开始在iOS6中开发一个应用程序.

现在,我正在尝试将其转换为iOS7并面临MKMap的问题.

在iOS6中,我正在使用viewForOverlay.

在iOS7中,我正在将其更改为renderForOverlay.但是,我的应用程序不是调用mapView:rendererForOverlay.以下是我的代码感谢你的帮助.

- (void) drawPolyline:(NSArray *)locations
{
    [mapView setDelegate:self];
    ...
    ...

    self.polyline = [MKPolyline polylineWithCoordinates:locationCoordinate2DArray count:numberOfLocations];
    free(locationCoordinate2DArray);
    [mapView addOverlay:self.polyline];
    [mapView setNeedsDisplay];
}

- (MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
    MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.polyline];
    lineView.strokeColor = [UIColor blueColor];
    lineView.lineWidth = 7;
    return lineView;
}
我假设您通过@interface语句在您的头文件中声明了MKMapViewDelegate委托:

但是,您是否在viewDidLoad(或您认为其适当的位置)方法中分配委托?

self.mapView.delegate = self;
翻译自:https://stackoverflow.com/questions/18906981/mkmapview-rendererforoverlay-not-called

转载注明原文:ios – MKMapView – 没有调用rendererForOverlay