2012-02-25 79 views
4

現在我想在我的iOS應用程序的地圖上添加一個靜態引腳註釋。在哪種情況下將調用mapView:viewForAnnotation:?

但我只是想知道委託方法mapView:viewForAnnotation:將被調用。

在蘋果的文檔,它是說,

When it needs an annotation view, the map view calls the mapView:viewForAnnotation: method of its delegate object. 

我已閱讀來自蘋果互聯網和官方文件幾個教程。 而我仍然不會在調用這個方法的時候。

+0

您是否試圖添加自定義註釋引腳? – 2012-02-25 09:51:32

回答

10

每當您致電addAnnotation方法- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation被調用。看看截圖。

enter image description here

你可以找到這個對MKMapView Class Reference

附:在addAnnotation呼叫和- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation放置斷點,你會很容易看到函數調用的流程。

+7

未完成答案,因爲viewForAnnotation也可能在Map可視區域顯着變化時調用。 e,g:用戶放大紐約市場,然後放大,然後放大倫敦。 – AmitP 2013-04-07 20:40:00

+0

非常有幫助! WA尋找這一個小時! – coolcool1994 2014-03-14 00:20:50

+0

「無論何時調用addAnnotation方法...」:否。文檔截圖不會說明這一點,這不是實際發生的情況。當OP引用問題中的文檔時,viewForAnnotation由地圖視圖「當它需要註釋視圖」調用。如果地圖視圖當前正在顯示要添加註釋的區域,則可立即或稍後調用viewForAnnotation _may_,但不能保證。正如@AmitP也提到的那樣,viewForAnnotation也可以多次調用_after_註釋已經添加了,如果區域發生變化。 – Anna 2015-04-15 13:26:13

2

顯然MKMapView至少會調用mapView:viewForAnnotation:當它將需要顯示您的MKAnnotationView到屏幕上。

相關問題