删除现有注释并将新注释添加到mapview中

时间:2011-11-27 06:35:46

标签: iphone ios mkmapview

我正在使用单个注释加载mapview。就像iphone中的“地图应用”一样。我有一个搜索栏,显示引脚位置的地址,如地图所示。现在我决定更改位置地址。我在搜索栏中输入新的地址位置。然后我的mapview必须删除现有的注释并添加新的注释。现在,我正在添加新注释,但我无法删除现有注释。如何删除现有注释?

2 个答案:

答案 0 :(得分:8)

首先,在地图视图上获取注释列表,然后删除不是当前用户位置的注释(即在MKUserLocation类中)。

NSArray *annotations = [mapView annotations];
for (id annotation in annotations) {
    if (annotation isKindOfClass:[MKUserLocation class]) {
        continue;
    }
    [mapView removeAnnotation:annotation];
}

然后您可以正常添加新注释。

答案 1 :(得分:0)

如果您使用自定义注释,则另一种方式可能是:

for (int i =0; i < [mapView.annotations count]; i++) { 
    if ([[mapView.annotations objectAtIndex:i] isKindOfClass:[MyAnnotationClass class]]) {                      
         [mapView removeAnnotation:[mapView.annotations objectAtIndex:i]]; 
       } 
    }

以这种方式只删除您添加的注释。