1
後我有三個線,我畫到地圖,都以同樣的方式:如何更改MKPolyline的顯色
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];
}
該方法被調用和渲染不爲零,但線不變色。感覺我錯過了一些基本的東西,但沒有得到任何文檔。
所以'[self.routeLineRenderer setNeedsDisplay];'?不適合我嗎? – Lewis42
上面,確保這個任務實際上發生了:'self.routeLineRenderer = renderer'。我懷疑'=='測試沒有通過。 – incanus