我有一个 MKMapView,我在它上面显示一个 MKAnnotaionView。我的问题是当我第一次点击 AnnotationView 时,mapView:didSelectAnnotationView
被调用,但如果我再次点击它,什么也没有发生。为什么会这样?
最佳答案
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)aView
{
indexPathTag=aView.tag;
[mapView deselectAnnotation:aView.annotation animated:YES];
}
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)aView
{
}
当 didSelectAnnotationView 触发时,它实际上将注释标记为以某种方式被选中。然后,当您再次单击它时,委托(delegate)函数不会触发,因为它“已被选中”。完成您想要的操作后,您必须通过调用以下函数手动取消选择注释。所以你必须添加 [mapView deselectAnnotation:aView.annotation animated:YES];在 didSelectAnnotationView 委托(delegate)方法中。
关于ios - map 查看 :didSelectAnnotationView gets fired only once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30372854/