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



我已经在我的MKMapView中添加了一些MKPolygons,它们在MKMapView上显示得很好。如果我现在为此 MKMapView 启用用户位置,并且用户授予其位置的权限,则不会调用任何委托,也不会绘制任何覆盖。在下一个视图DidLoad之后,委托再次正常工作,并显示所有覆盖。

因此,只有在要求用户授予其位置的权限时,问题似乎才会出现。

我希望有人对这种奇怪的行为有一个解释/解决方案,谢谢。

更新

正如我发现的那样,它与用户位置无关。不知何故,MKMapView 不会调用它的委托来绘制叠加层,但前提是它是第一次应用启动期间的初始视图。在那之后,一切都有效。

只需将设置代码移动到其自己的方法中,并从viewDidLoad和用户跟踪委托方法之一(如 mapView:didChangeUserTrackingMode:animated:mapViewWillStartLocatingUser:)调用该代码。

相关内容

  • 没有找到相关文章

最新更新