2011-08-31 66 views
0

嗨,我有以下问题! 我做了很多覆盖到我的MKMapView! 例如,我添加了150个叠加层,但由于某些原因,并不是所有的都显示出来! 我知道mapView:viewForOverlay:被称为150次。 我发现,如果我添加这个:​​到所有我的覆盖被创建的方法,所有的覆盖显示出来。 因此可以将覆盖图添加到快速?或者可能是什么问题?为MKMapView添加Overlays以加快速度!这甚至有可能吗?

所有叠加层都是在后台线程中创建的!

MKPolyline* routeLine; 
.... 
.... 
dispatch_async(dispatch_get_main_queue(), ^{ 

    [self.myMKMapView addOverlay:routeLine]; 

}); 

,这是调用addOverlays:方法与mapView:viewForOverlay:

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

    MKPolylineView * rLV = [[[MKPolylineView alloc] initWithPolyline:overlay]autorelease]; 

    rLV.fillColor = [UIColor blueColor]; 
    rLV.strokeColor = [UIColor blueColor]; 
    rLV.lineWidth = 1; 
    rLV.alpha = 0.5; 

    overlayView = rLV; 

    return overlayView; 
} 

回答

6

如果你调用addOverlay:多次(和主线程上排队数百块),你可能会得到更好的效果一个数组来代替。

相关问题