我在 map View 上有几个注释。
选择其中之一(启用标注)后,我希望 map 以它为中心。
我在 didSelectAnnotationView
中调用 [mapView setCenterCooperative:coefficientanimated:YES];
来实现这一点。
它有效,但并不总是 - 基本上,当没有足够的空间来显示标注时, map 会移动并选择注释,但标注不会显示(无论移动是否有动画) 。
如果我自己不使用 setCenterCooperative
移动 map ,则在选择注释后, map 会自动移动(稍微移动)以显示标注,并且每次都能正常工作。
有什么想法可以让它在我的案例中发挥作用吗? 总而言之,我希望将 map 置于所选注释的中心并显示标注。
最佳答案
通过在 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];
});
关于ios - 移动 map View 后显示标注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047596/