我在我的MKMapView中添加了一些MKPolygons,MKMapView可以很好地显示它们。如果我现在为此MKMapView启用userLocation并且用户授予其位置的权限,则不会调用任何代理并且不会绘制任何叠加层。在下一个viewDidLoad之后,委托再次正常工作并显示所有叠加层。
因此,如果要求用户授予其位置许可,则似乎只会出现问题。
我希望有人能解释这个奇怪的行为,谢谢。
更新
正如我发现的那样,它与用户位置没什么关系。不知何故,MKMapView没有调用它的代表来绘制叠加层,但只有在第一个应用程序启动时它才是初始视图。在那之后工作。
答案 0 :(得分:2)
只需将设置代码移动到自己的方法中,然后从viewDidLoad
和其中一个用户跟踪委托方法调用,例如mapView:didChangeUserTrackingMode:animated:
或mapViewWillStartLocatingUser:
。