2012-04-06 41 views
3

我在地圖視圖上有幾個註釋。 選擇其中一個(已啓用標註)後,我希望地圖以它爲中心。 我在didSelectAnnotationView中撥打[mapView setCenterCoordinate:coordinate animated:YES];即可實現。移動地圖視圖後顯示標註

它的工作原理並非總是如此 - 基本上,當沒有足夠的空間顯示標註時,地圖會移動並選擇註釋,但標註不會顯示(如果移動動畫或不顯示,則無關緊要)。 如果我不自己移動地圖setCenterCoordinate,選擇一個註釋後,地圖會自動移動(略微)以顯示標註,並且它每次都有效。

任何想法如何使它在我的情況下工作? 總結我想將地圖放在選定的註釋上並顯示標註。

回答

4

didSelectAnnotationView調用setCenter稍微延遲解決了這個問題:

dispatch_time_t dt = dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC); 
dispatch_after(dt, dispatch_get_main_queue(), ^(void) 
{ 
    [mapView setCenterCoordinate:view.annotation.coordinate animated:YES]; 
}); 
+0

看到相同的行爲。任何人都想出延遲以外的解決方案? – pj4533 2013-04-28 16:18:18

+0

對我來說工作得很好。 – 2014-12-18 09:06:30

相關問題