我在mapview上有几个注解。选择其中一个(callout enabled)后,我希望地图以其为中心。我在didSelectAnnotationView中调用[mapView setCenterCoordinate:coordinate animated:YES];来实现这一点。
它可以工作,但并不总是有效-基本上,当没有足够的空间显示标注时,地图会移动,注释会被选中,但标注不会显示(移动是否为动画并不重要)。如果我不使用setCenterCoordinate自己移动地图,那么在选择注释之后,地图会自动移动(只是稍微移动一下)以显示标注,并且每次都能正常工作。
有什么办法让它在我的情况下工作吗?总而言之,我希望将地图放在所选注释的中心,并显示标注。
发布于 2012-05-26 23:35:51
通过在didSelectAnnotationView中稍有延迟地调用setCenter解决了这个问题
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];
});https://stackoverflow.com/questions/10047596
复制相似问题