2011-01-21 3 views
6

MKMapViewでMKCircleを移動しようとすると、次のエラーメッセージが表示されます。-[MKCircle setCoordinate:] unrecognized selector ..。しかし、MKCircleはMKAnnotationプロトコルに準拠していますので、setCoordinate:メソッドが実装されている必要があります(Xcodeは自動脆弱性を提供し、デバッガは警告を表示しません)。MKMapViewでMKCircleを移動する

どこに問題があるのか​​知っていますか?

ありがとうございます。

答えて

9

はMKCircleがMKAnnotationに適合しない場合でも、MKCircleクラスは、次いで、(残念ながら)読み取り専用として座標プロパティをオーバーライド:

円形領域の中心点、 は、緯度と経度のように指定します。 (読み取り専用)

@property(読み取り専用、非アトミック)


最も簡単な解決策は、removeOverlay:と古いオーバーレイを削除し、新たな中心と新しいものを追加することである座標CLLocationCoordinate2D座標と半径。

+0

はい、このプロパティはMKAnnotationプロトコルでも読み取り専用ですが、それをバイパスするセッターもあります。私はそれを削除して別の場所に再作成することができますが、私はサークルを使用して、他の人を地図に表示するカスタム注釈の周りの位置精度を表示し、注釈と共にサークルを動かすようにアニメーションしたいと思います(もちろん、円の縮み)。しかし、オーバーレイを使用して静的なデータ(地図上の道路を強調表示するなど)を文書に基づいて表示する必要があるため、削除/読み込みで十分でなければなりません。 ; o)とにかくあなたの答えに感謝します。 – JakubM

+0

私はこの動きをアニメーション化したいので、単にそれを削除して追加するのではなく、「移動」サークルオーバーレイを使用したいと思います。何か解決策を見つけましたか? – user836026

+1

@ user836026:はい、カスタムオーバーレイを作成する必要があります。詳細については、[この質問](http://stackoverflow.com/questions/9056451/draw-a-circle-of-1000m-radius-around-users-location-in-mkmapview)に関する私のコメントを参照してください。 – Anna

関連する問題