2011-08-31 60 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:多次(和主線程上排隊數百塊),你可能會得到更好的效果一個數組來代替。

相關問題