我試圖在一個MKPolylineView
畫出一個漂亮的MKPolyline
。一切都進行得很順利,到目前爲止 - 折線畫就像我希望它時,我希望它用下面的代碼:繪製MKPolyline填充顏色
[[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的快速幫助部分:
的MKPolylineView類提供一個MKPolyline註釋對象的視覺表示。該視圖觸發註釋表示的路徑。 (此類不填充由路徑包圍的區域。)可以通過修改從MKOverlayPathView類繼承的屬性改變路徑的顏色和其他繪製屬性。
這只是聽起來很可笑。我不得不使用這個類來集填充顏色,但我不能使用此類畫填充顏色?這看起來很奇怪,因爲它已經畫出了中風。從文檔的解釋中最後一行有點不清楚,但似乎提供了一個答案 - 我只是很難編碼/找到答案。我的項目中沒有MKOverlayPathView
(這是什麼?)但是它似乎是解決方案 - 有誰知道如何使用它?
'MKPolylineView'是MKOverlayPathView'的'的子類。無論如何,你只是想使用'MKPolygon'(並創建相關的'MKPolygonView')而不是'MKPolyline'。 'MKPolygon'繪製中風和填充。 – Rob 2013-02-16 22:44:55