こんにちは、次の問題があります。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;
}