2
我已經添加了一些MKPolygons到我的MKMapView,並且它們在MKMapView中顯示得很好。如果我現在啓用此MKMapView的userLocation並且用戶授予他的位置權限,則不會調用委託,也不會繪製疊加層。在下一個viewDidLoad之後,委託再次正常工作,並顯示所有疊加層。爲什麼MKMapView的mapView:viewForOverlay:在啓用userlocation時未調用?
所以這個問題似乎只會出現,如果用戶被要求授予他的位置的權限。
我希望有人對這種奇怪的行爲有一個解釋/解決方法,謝謝。
更新
正如我發現,它與用戶位置無關的待辦事項。不知何故,MKMapView不會調用它的代表來繪製疊加層,但只有當它是第一次應用程序啓動時的初始視圖。在這之後,翻譯工作。
mapview不會調用'mapViewWillStartLocatingUser:'和'mapView:didChangeUserTrackingMode:animated:'。 'mapView:didUpdateUserLocation:'做的伎倆,但它被連續調用,所以我添加了一個標誌。任何想法爲什麼前兩個不被稱爲? – peer
也許這兩種方法在**視圖實際加載之前會被調用**。例如,'willStartLocatingUser:'可能不會被調用,因爲它已經在視圖設置時定位用戶。因此,也沒有用戶跟蹤模式改變(解釋爲什麼第二個不被調用)。 – Mundi
我將其追溯到一個Bug。如果我的MapView是應用程序的初始視圖,並且它是第一次啓動,則MapView不會繪製任何疊加層。如果它不是應用程序的初始視圖,它就可以工作。 – peer