1

マップ上に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にも追加しようとしましたが、同じ結果になりました。

4

1 に答える 1

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];
 });
于 2013-01-02T10:20:20.577 に答える