1

私はMKMapViewiOS アプリで を描画しています。このマップにはいくつかの注釈があり、それらを表すカスタム画像があります。特定の注釈が選択されると、画像がわずかに変化します (輝きがあります)。

これを行うには、mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!)デリゲート メソッドを使用してイメージを変更します (変更することによりview.annotation.image)。これはうまくいくようです。

ただし、mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)メソッドを使用して画像を選択解除した後に元に戻すと、マップの左上隅に注釈が再描画されます。ユーザーがマップを操作すると、すぐに適切な場所にマップが再描画されるため、メソッド呼び出しの後、クリックまたは何かが行われるまでマップが更新されないようです。

これは実際に注釈の画像を変更する正しい方法ですか (現在の を上書きすることによってview.annotation.image)。もしそうなら、マップを更新する方法はありますか?

編集: また、新しい注釈を選択するたびに、マップの中心が約 100 ピクセル下にドラッグされることに気付きました。上記の 2 つの方法のいずれかを呼び出した後に行う必要があることはありますか?

4

1 に答える 1

1

新しい画像を使用mapView.removeAnnotation(yourAnnotation)して、注釈を削除して再度追加することができますmapview.addAnnotation(yourAnnotation)

于 2015-07-15T17:37:05.867 に答える