私はに素敵な絵を描くことを試みてMKPolyline
いMKPolylineView
ます。これまでのところ、すべてが順調に進んでいます。ポリラインは、次のコードを使用して、希望どおりに描画します。
[[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
(とにかくそれは何ですか?)が、それは解決策のようです-誰かがそれを使用する方法を知っていますか?