移动mapview后显示标注

时间:2012-04-06 18:26:34

标签: ios mkmapview mkannotationview

我在mapview上有几个注释。 选择其中一个(启用标注)后,我希望地图以中心为中心。 我在[mapView setCenterCoordinate:coordinate animated:YES];中致电didSelectAnnotationView来实现这一目标。

它的工作原理但并非总是如此 - 基本上当没有足够的空间来显示标注时,地图会移动并选择注释,但不会显示标注(如果动画是否动画则无关紧要) 。 如果我不使用setCenterCoordinate自行移动地图,则在选择注释后,地图会自动移动(稍微)以显示标注,并且每次都有效。

任何想法如何让它在我的情况下工作? 总而言之,我希望将地图置于所选注释的中心并显示标注。

1 个答案:

答案 0 :(得分:4)

setCenter

稍稍延迟时致电didSelectAnnotationView解决了问题
dispatch_time_t dt = dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC);
dispatch_after(dt, dispatch_get_main_queue(), ^(void)
{
    [mapView setCenterCoordinate:view.annotation.coordinate animated:YES];
});