Выбор аннотации MapView дважды - PullRequest
4 голосов
/ 26 марта 2012

В моем приложении для iPhone есть вид карты с большим количеством мест, из которых пользователь может выбрать.Я бы хотел, чтобы он имел возможность нажать на одну из аннотаций, чтобы отобразить ее вид выноски, а затем снова выбрать ее.Проблема в том, что didSelectAnnotationView вызывается только один раз.

Так как я могу определить выделение уже выбранной аннотации?В качестве альтернативы, как я могу отменить выбор аннотации, не скрывая вид выноски?Пользователь может обойти эту проблему, отменив выбор аннотации, прежде чем он выберет ее снова, но это не интуитивно понятно, и я хочу избежать его необходимости.

Ответы [ 3 ]

8 голосов
/ 14 мая 2015

Я только что нашел решение с кодом ниже:

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    [mapview deselectAnnotation:view.annotation animated:NO];

}

Таким образом, выбранная аннотация отменяется, и вы можете выбрать ее еще раз.

3 голосов
/ 12 мая 2016

Для тех, у кого возникла эта проблема в 16 году, вот версия Swift:

mapView.deselectAnnotation(view.annotation!, animated: false)
0 голосов
/ 05 апреля 2012

Аннотация не может переместиться из выбранного состояния в выбранное состояние.

Вместо этого вы можете использовать пользовательский mkannotationview, в котором вы переопределяете setSelected, устанавливаете UITapGestureRdcognizer в своем представлении и удаляете его, когдапредставление отменено.

подключите распознанное, чтобы сделать то, что вы хотите для состояния касания при выборе.

...