更改地图中心后,标注将在错误的位置打开

时间:2015-05-04 13:38:27

标签: ios swift mapkit

当用户从表中选择项目时,我将地图的中心更改为所选项目的位置,并以编程方式选择匹配的注释。这会导致注释调出在地图上打开。

mapView.centerCoordinate = itemCoordinate
mapView.selectAnnotation(itemAnnotation, animated: true)    

我的问题是标注是在地图上的前一个地方打开的,好像首次打开标注然后地图移动(不移动标注)

任何解决方案?

1 个答案:

答案 0 :(得分:2)

您可以尝试在这样的小延迟后选择注释:

let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue()) { () -> Void in
   mapView.selectAnnotation(itemAnnotation, animated: true)
}

或选择没有动画的注释也应该起作用:

mapView.selectAnnotation(itemAnnotation, animated: false)