我以相同的方式在地图上绘制了三条线:
MKPolyline *polyline = [MKPolyline polylineWithCoordinates:coordinateArray count:2];
[self.mapView addOverlay:polyline];
self.routeLine = polyline;
和:
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay {
if ([overlay isKindOfClass:[MKPolyline class]]) {
MKPolyline *polyline = (MKPolyline *)overlay;
MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithPolyline:polyline];
renderer.fillColor = [UIColor statusGreen];
renderer.strokeColor = [UIColor statusGreen];
renderer.lineWidth = 5;
if (overlay == self.routeLine) {
self.routeLineRenderer = renderer;
}
return renderer;
}
return nil;
}
这一切都很好。
几秒钟后,我想更改其中一条线的颜色:
(void) changeLineColor:(id)object {
NSLog(@"changing color");
self.routeLineRenderer.fillColor = [UIColor statusAmber];
}
该方法被调用并且渲染器不是零,但线条不会改变颜色。感觉我错过了一些基本的东西,但没有得到任何文档。