我已经在我的MKMapView中添加了一些MKPolygons,它们在MKMapView上显示得很好。如果我现在为此 MKMapView 启用用户位置,并且用户授予其位置的权限,则不会调用任何委托,也不会绘制任何覆盖。在下一个视图DidLoad之后,委托再次正常工作,并显示所有覆盖。
因此,只有在要求用户授予其位置的权限时,问题似乎才会出现。
我希望有人对这种奇怪的行为有一个解释/解决方案,谢谢。
更新
正如我发现的那样,它与用户位置无关。不知何故,MKMapView 不会调用它的委托来绘制叠加层,但前提是它是第一次应用启动期间的初始视图。在那之后,一切都有效。
只需将设置代码移动到其自己的方法中,并从viewDidLoad
和用户跟踪委托方法之一(如 mapView:didChangeUserTrackingMode:animated:
或 mapViewWillStartLocatingUser:
)调用该代码。