1

我有在地图上绘制 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 中添加它,结果相同。

4

1 回答 1

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];
 });
于 2013-01-02T10:20:20.577 回答