1

MKMapView在我的 iOS 应用程序中画了一个,在这张地图上有一些注释,用自定义图像表示它们。选择特定注释时,图像会发生轻微变化(发光)。

为此,我使用mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!)委托方法来更改图像(通过更改view.annotation.image)。这似乎工作正常。

但是,当我在mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)取消选择后使用该方法将图像改回时,它会重新绘制地图左上角的注释。任何与地图的用户交互都会立即将其重新绘制到适当的位置,因此在方法调用之后地图不会被刷新,直到单击或进行某些操作。

这实际上是更改注释图像的正确方法(通过覆盖当前的view.annotation.image,如果是的话,有没有办法刷新地图?

编辑:我也刚刚注意到,每次选择新注释时,它都会将地图中心向下拖动约 100 像素。在调用上面提到的这两种方法中的任何一种后,我需要做些什么吗?

4

1 回答 1

1

mapView.removeAnnotation(yourAnnotation)您可以尝试使用和mapview.addAnnotation(yourAnnotation)使用新图像删除和重新添加注释

于 2015-07-15T17:37:05.867 回答