2012-12-29 45 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

你应该纪念你的答案被接受,如果这解决您的问题。将答案标记为已接受可帮助社区,为您提供声誉,并改善堆栈溢出。为此,请点击答案旁边的灰色/白色√符号 - 接受答案会将√绿色。 –