我有一個MKOverlayView
類的工作擴展與mapview委託觸發並完全執行 - mapView:viewForOverlay
:委託方法。所以,從過時的類,離開我已經改變了我的MKOverlayView
extention延長MKOverlayRenderer
...這樣做,但離開viewForOverlay
方法到位工作正常....rendererForOverlay不被調用....從MKOverlayView更新到MKOverlayRenderer後
但是委託方法viewForOverlay
被棄用好了,所以我用rendererForOverlay
方法取代它是與非棄用API定位和它永遠不會被觸發...
爲MapView
正確迷上了,(這是由viewForOverlay
工作證明的委託,但是當我用rendererForOverlay
替換這個方法時,它就是它的替代品,它永遠不會觸發......因此我的覆蓋圖不會被繪製,這使得n o感覺到我。
我非常茫然,工作版本和版本之間唯一不同的是這種方法。即使在我將課程從MKOverlayView
擴展到MKOverlayRenderer
擴展後,只要代理中存在viewForOverlay
方法,覆蓋圖仍將繪製,它將被調用。但是現在我替換了方法nada的viewForOverlay
委託方法。
下面是代碼:
此方法的類MapOverlayView
正確是否延長MKOverlayView
或MKOverlayRenderer
,任何一個這種委託方法被調用,疊加呈現。
-(MKOverlayView*)mapView:(MKMapView*)mapView viewForOverlay:(id<MKOverlay>) overlay{
MyMapOverlay *mapOverlay = overlay;
MapOverlayView *mapOverlayView = [[MapOverlayView alloc] initWithOverlay:mapOverlay];
return mapOverlayView;
}
對於這種方法,我要確保MapOverlayView
一直延伸MKOverlayRenderer
,但委託方法永遠不會被觸發。爲什麼會上面的方法已過時總是被調用和工作,但下面不正確的方法已過時從未被觸發?
-(MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id<MKOverlay>) overlay{
MyMapOverlay *mapOverlay = overlay;
MapOverlayView *mapOverlayView = [[MapOverlayView alloc] initWithOverlay:mapOverlay];
return mapOverlayView;
}
方法名稱爲mapView:...不是MapView:... – manecosta
有斑點的伴侶 – Pancho
它是小寫字母代碼中的小寫字母,我在此處將其轉換爲錯誤...我將編輯它。 ..所以問題依然存在。 – user282172