Как удалить определенный штифт аннотации - PullRequest
2 голосов
/ 29 июня 2011

У меня есть приложение, которое добавляет точки аннотации к mapView следующим образом:

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

Этот блок кода может быть выполнен несколько раз, так как я позволяю пользователю добавлять столько выводов, сколько онихотел бы к mapView.Мой вопрос, есть ли способ изменить это так, чтобы пользователь мог УДАЛИТЬ определенный штифт?Прямо сейчас я могу только удалить последний добавленный.

Буду признателен за любую помощь, спасибо.

1 Ответ

2 голосов
/ 29 июня 2011

Просто удалите аннотацию, используя

[mapView removeAnnotation:annotationToRemove]

Предположительно, у вас есть какая-то форма пользовательского интерфейса, позволяющая пользователю выбирать, с какой из них он имеет дело? Например, у вас может быть сценарий, в котором они нажимают на пин-код, чтобы выбрать его, а затем нажимают кнопку удаления в другом месте вашего интерфейса, чтобы удалить этот пин-код? Вы можете отследить, какой из них был выбран в последний раз, используя что-то вроде этого;

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

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

Вы также можете реализовать метод didDeselectAnnotaionView.

Как всегда, в Apple

хранится обильная документация
...