2011-09-19 31 views
-2

因此,我遇到了最奇怪的問題,並且我已經走到了每個看起來它的地方。我遇到的一個問題是我爲我的MKMapView創建自定義註釋視圖。這個MKMapView從沒有註釋開始,當你改變區域時,註釋被創建並添加到地圖中。在調用[my_map_view addAnnotation:a_annotation];什麼都沒發生。 mapView viewForAnnotation不被調用,並且沒有任何顯示。現在,這是iPhone4的情況,但是當我在模擬器上運行相同的代碼時,它最終會工作。我想知道爲什麼這是?我相信這是地圖部分的刷新問題,因爲當我雙擊手機並且地圖執行縮放處理時,註釋顯示出來。我知道你可以做一大堆[my_map_view setRegion:my_map_view.currentRegion];並設置中心以嘗試刷新我甚至嘗試將區域更改爲不同的區域,但沒有任何效果。任何想法,我很難過,並在過去3天一直在努力。viewForAnnotation沒有在iPhone 4中調用,但在模擬器中工作

+2

您需要重新格式化本作的可讀性,你的問題導致,並提供代碼。 –

+0

如果你想得到任何體面的答案,你應該聽他的。 – Jumhyn

+0

請發表您的viewForAnnotation方法。 – Anna

回答

-1

嘿傢伙,所以我解決了這個問題。無論何時在重新載入地圖時遇到問題,我發現最好的解決方案是銷燬並創建地圖以顯示註釋。因此,請確保從視圖版本中刪除映射,將其設置爲零,然後重新分配內存並使用註釋數據對其進行初始化。對不起,沒有發佈代碼我必須清理大量的數據名稱才能:(如果這個解決方案不起作用,請繼續向我發送一條消息,以便我可以與您通過代碼。例如你:)它可能只是一段時間的工作原因。

而且這是我爲你們ANNOT方法觀,因爲我知道,這是想張貼:)

-(MKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
    MKAnnotationView *annotation_view = nil; 
    CustomAnnotation *annot = (CustomAnnotation*)annotation; 
    CustomAnnotationView *view; 
      view = [[[CustomAnnotationView alloc] initWithAnnotation:annot reuseIdentifier:@"Job"] autorelease]; 
    [view addObserver:self forKeyPath:@"selected"options:NSKeyValueObservingOptionNew context:GMAP_ANNOTATION_SELECTED]; 
    view.image = [UIImage imageNamed:@"map_marker"]; 
    view.canShowCallout = YES; 
    annotation_view = view; 
    [annotation_view setEnabled:YES]; 
    [annotation_view setCanShowCallout:YES]; 
    return annotation_view; 
} 
相關問題