【问题标题】:adding Overlays to MKMapView to fast! Is that even possible?将叠加层添加到 MKMapView 以快速!这甚至可能吗?
【发布时间】:2011-08-31 16:33:57
【问题描述】:

您好,我有以下问题! 我确实在我的 MKMapView 中添加了很多叠加层! 例如,我添加了 150 个叠加层,但由于某种原因,它们并没有全部显示出来! 我知道mapView:viewForOverlay: 被调用了 150 次。 我发现如果我添加这个:[NSThread sleepForTimeInterval:1] 到创建所有叠加层的方法中,所有叠加层都会显示。 那么叠加层可以快速添加吗?或者可能是什么问题?

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

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

    [self.myMKMapView addOverlay:routeLine];

});

这是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;
}

【问题讨论】:

    标签: iphone objective-c mkmapview overlay mkoverlay


    【解决方案1】:

    如果您多次调用addOverlay:(并在主线程上排队数百个块),则使用数组调用addOverlays: 方法可能会获得更好的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      相关资源
      最近更新 更多