Swift:在didDeselectAnnotationView调用之后,MKMapView注释出现在左上角

时间:2015-04-21 02:14:51

标签: ios iphone swift mkmapview mkmapviewdelegate

我在我的iOS应用中绘制MKMapView,并在此地图上显示了一些注释,其中自定义图像代表它们。选择特定注释时,图像会稍微改变(发光)。

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

但是,当我使用mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)方法在取消选择后更改图像时,它会重新绘制地图左上角的注释。任何用户与地图的互动然后立即将其重新绘制在适当的位置,因此在方法调用之后,地图不会被刷新,直到点击或其他内容为止。

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

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

1 个答案:

答案 0 :(得分:1)

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