在iOS 6中延迟绘制MK Polylines

时间:2012-12-29 12:48:28

标签: objective-c ios6 mapkit

我有代码在地图上绘制MKPolylines,直到iOS6发布一切正常。在iOS6中,基于阵列中的坐标数,折线的绘制从几秒延迟到30-40秒。在iOS5中情况并非如此。我可以在不同版本的模拟器中看到同样的问题。

- (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 个答案:

答案 0 :(得分: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];
 });