2016-08-15 19 views
0

MKPolygonを区別するための唯一の方法は、MKPolygon.version(Int:Int)型のプロパティを使用することです。私はこれを1,2,3などに設定し、それぞれに異なる色を与えることができます(たとえば)。私はタグを追加するためにMKPolygonを拡張したいが、Swift拡張はストアドプロパティを追加できない。私はMKPolygon.versionを使用するのが快適ではありません。より良い方法がありますか?いくつかの異なるMKポリゴンオーバーレイを区別するにはどうすればよいですか?

+0

サブクラスMKPolygonを試してください –

+0

扱いました!ありがとう@DavidBerry。私は実際に...静的なvar識別子= "ブルー"などを作成し、mapView(_:rendererForOverlay :)メソッドで私は使用しました...もしオーバーレイをオーバーレイとして= MyPolygon && MyPolygon.identifier == "青"。さまざまな色と小道具の複数のポリゴンを追加できるようになりました。 – KeithRussell

答えて

0

サブクラスMKPolygonとそこにあなたのカスタムプロパティを置く:

class MyPolygon: MKPolygon { 
    var identifier: String? 
} 

を次にmapView(_:rendererForOverlay:)方法では、あなたのクラスに変換します

func mapView(_ mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer { 
    if let overlay = overlay as? MyPolygon { 
     let identifier = overlay.identifier 
     // Do stuffs.... 
    } 
} 

(私はXcodeとAppleのドキュメントサイトの近くにいませんよスウィフト2とスウィフト3の間で前後にあるため、一部の関数宣言が一致しない可能性があります)

関連する問題