为什么MKMapView的mapView:viewForOverlay:启用用户位置时不调用?

时间:2012-06-03 09:56:41

标签: ios delegates mapkit mkoverlay userlocation

我在我的MKMapView中添加了一些MKPolygons,MKMapView可以很好地显示它们。如果我现在为此MKMapView启用userLocation并且用户授予其位置的权限,则不会调用任何代理并且不会绘制任何叠加层。在下一个viewDidLoad之后,委托再次正常工作并显示所有叠加层。

因此,如果要求用户授予其位置许可,则似乎只会出现问题。

我希望有人能解释这个奇怪的行为,谢谢。

更新

正如我发现的那样,它与用户位置没什么关系。不知何故,MKMapView没有调用它的代表来绘制叠加层,但只有在第一个应用程序启动时它才是初始视图。在那之后工作。

1 个答案:

答案 0 :(得分:2)

只需将设置代码移动到自己的方法中,然后从viewDidLoad和其中一个用户跟踪委托方法调用,例如mapView:didChangeUserTrackingMode:animated:mapViewWillStartLocatingUser: