1

カスタム図面を含むオーバーレイ (MKOverlay) を Mapview に追加しました。オーバーレイは正常に表示され、図面を見ることができます。しかし、そのオーバーレイを削除しても、図面の一部が完全に削除されません。理由は何ですか?そのオーバーレイを削除するために removeOverlay: を使用しています。どんな助けでも大歓迎です..

4

3 に答える 3

4

皆さんがまだこれについて疑問に思っているかどうかはわかりませんが、私にとっては次のように機能します。

// assuming you have mapView and overlay defined somewhere
MKOverlayView *overlayView = [mapView viewForOverlay:overlay];
overlayView.hidden = YES;
[overlayView setNeedsDisplay];
[mapView removeOverlay:overlay];

お役に立てれば!

于 2011-02-13T21:44:46.340 に答える
2

マップ内のすべてのオーバーレイを削除できます。それはとてもうまくいっています

この関数を yourviewController に追加します。

-(void)deleteMapOverlays
{

    for (id<MKOverlay> overlay in mapView.overlays)
    {
        [self.mapView removeOverlay:overlay];
    }

}

使用:

 [self deleteMapOverlays];
于 2013-10-01T08:39:17.390 に答える
0

場所が更新された後、MKCircle() の上に複数のオーバーレイを取得し続けました。これは@ErhanDemirciのSwift 4の回答で、その後MKCircleが追加されています。ステップ 2. は、回答の Swift 4 バージョンです。

// 1. add the MKCircle
let circle = MKCircle(center: location.coordinate, radius: whateverRadius)

// 2. loop through the map view's overlays then remove it. The overlay is the MKCircle
for overlay in mapView.overlays {
    mapView.remove(overlay)
}

// 3. add your the MKCircle to the mapView
mapView.add(circle)
于 2018-11-02T07:28:50.317 に答える