2012-12-29 50 views
1

我有在地圖上繪製MKPolylines的代碼,直到iOS6的發佈一切正常。在iOS6中,根據數組中的座標數,多段線的繪製從幾秒延遲到30-40秒。這在iOS5中並非如此。我可以在不同版本的模擬器中看到相同的問題。在iOS6中延遲繪製MKPolylines

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay 
{ 
MKOverlayView* overlayView = nil; 


    MKPolylineView *polylineView; 
    polylineView = [[MKPolylineView alloc] initWithPolyline:overlay]; 

    if(overlay == self.routeLine) 
    { 
     polylineView.fillColor = [UIColor blackColor]; 
     polylineView.strokeColor = [UIColor blackColor]; 
     polylineView.lineWidth = 12; 
    } 
} 

我加入viewDidAppear覆蓋,但我自己也嘗試將其與相同的結果添加在viewWillAppear中。

回答

1

我發現了我的問題的解決方案。

我提取了回發的回調數據。當我添加覆蓋時,我是從錯誤的線程添加它,這導致了問題。

所以從這個:

// add the overlay to the map 
[self.mapView addOverlay:self.routeLine]; 

要幫:

dispatch_async(dispatch_get_main_queue(), ^{ 

    // add the overlay to the map 
    [self.mapView addOverlay:self.routeLine]; 
}); 
+0

你應該紀念你的答案被接受,如果這解決您的問題。將答案標記爲已接受可幫助社區,爲您提供聲譽,並改善堆棧溢出。爲此,請點擊答案旁邊的灰色/白色√符號 - 接受答案會將√綠色。 –