我正在使用单个注释加载mapview。就像iphone中的“地图应用”一样。我有一个搜索栏,显示引脚位置的地址,如地图所示。现在我决定更改位置地址。我在搜索栏中输入新的地址位置。然后我的mapview必须删除现有的注释并添加新的注释。现在,我正在添加新注释,但我无法删除现有注释。如何删除现有注释?
答案 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]];
}
}
以这种方式只删除您添加的注释。