我将自定义绘图的叠加(MKOverlay)添加到Mapview。叠加显示很好,我可以看到图纸。但是,当我删除那个叠加层时,它不能完全去除图形的某些部分仍然存在。是什么原因?即时通讯使用removeOverlay:用于删除该叠加层。任何帮助表示赞赏..
答案 0 :(得分:4)
不知道你们是否还在想这个,但以下内容对我有用:
// assuming you have mapView and overlay defined somewhere
MKOverlayView *overlayView = [mapView viewForOverlay:overlay];
overlayView.hidden = YES;
[overlayView setNeedsDisplay];
[mapView removeOverlay:overlay];
希望这有帮助!
答案 1 :(得分:2)
您可以删除地图中的所有叠加层。它工作得很好
将此功能添加到yourviewController:
-(void)deleteMapOverlays
{
for (id<MKOverlay> overlay in mapView.overlays)
{
[self.mapView removeOverlay:overlay];
}
}
使用:
[self deleteMapOverlays];
答案 2 :(得分: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)