3

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

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

任何想法如何使它适用于我的情况?总而言之,我想将地图集中在所选注释上并显示标注。

4

1 回答 1

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];
});
于 2012-05-26T15:35:51.317 回答