示出移动后MapView类标注(showing callout after moving mapvi

2019-06-25 07:48发布

我有一个MapView的几个注解。 选择其中的一个后(标注启用)我想在地图上它中心。 我称[mapView setCenterCoordinate:coordinate animated:YES];didSelectAnnotationView来实现这一目标。

它的工作原理,但并不总是 - 基本上,当没有足够的空间留给显示标注,地图和移动选择标注,标注不显示(如果此举是动画与否并不重要)。 如果我不自己与移动地图setCenterCoordinate ,选择标注后,地图就会自动移动(稍稍)来显示标注和它的作品每次。

任何想法如何让它在我的情况下工作吗? 综上所述我想集中在所选择的注释的地图,并显示标注。

Answer 1:

解决它通过调用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];
});


文章来源: showing callout after moving mapview