mapView:didSelectAnnotationView只被触发一次

时间:2015-05-21 11:48:15

标签: ios mkmapview mkannotationview

我有一个MKMapView,我在它上面显示一个MKAnnotaionView。我的问题是当我第一次点击AnnotationView时,mapView:didSelectAnnotationView被调用,但是如果我再次点击它就没有任何反应。为什么会这样?

1 个答案:

答案 0 :(得分:10)

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)aView
    {
        indexPathTag=aView.tag;
        [mapView deselectAnnotation:aView.annotation animated:YES];

    }
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)aView
    {
    }

当didSelectAnnotationView触发时,它实际上将注释标记为以某种方式选择。然后当您再次单击它时,委托功能不会触发,因为它已被“选中”。完成所需操作后,必须通过调用以下函数手动取消选择注释。所以你必须添加[mapView deselectAnnotation:aView.annotation animated:YES];在didSelectAnnotationView委托方法中。