我有代码在地图上绘制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中添加叠加层,结果相同。
答案 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];
});