2011-06-29 65 views
2

我有,增加了注解指向一个MapView像这样的应用程序:如何删除某些注释销

annot = [[AnnotationDelegate alloc] init]; 
annot.coordinate = CLLocationCoordinate2DMake(lat,long); 
annot.title = [NSString stringWithFormat:@"%d",id]; 
annot.subtitle = string; 
[mapView addAnnotation: annot]; 

的代码块可以执行多次,我允许用户添加尽可能多的引脚,因为他们想要的mapView。我的问题是,有没有办法修改这个,以便用户可以删除某个引脚?现在,我似乎只能删除最近添加的那个。

希望有任何帮助,谢谢。

回答

2

只是删除使用

[mapView removeAnnotation:annotationToRemove] 

想必你有某种形式的用户界面,使用户可以选择他们所处理的其中一个注解?例如,您可能有一个场景,他们点击一个图钉来选择它,然后在您的用户界面的其他地方点击删除按钮以删除该图钉?你可以使用类似这样的东西来跟踪最后选择哪一个;

-(void) mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view { 

    // Do other stuff 
    annotationToRemove = view.annotation;  
} 

您也可以实施didDeselectAnnotaionView方法。

与往常一样,有copious documentation over at Apple