ios - map 查看 :didSelectAnnotationView gets fired only once

标签 ios mkmapview mkannotationview

我有一个 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/

相关文章:

ios - 在 iOS8 中为 "Suggested Apps"添加多个位置

ios - XLForm formRowDescriptorValueHasChanged 不工作

ios - 为什么 ABCreateStringWithAddressDictionary 没有给出详细名称?

ios - 自定义 MKAnnotation 标注气泡

ios - 标注附件未出现

ios - 自定义视频大小导致 AVAssetWriter 出现错误

ios - observeValueForKeyPath 总是从主线程调用吗?

ios - 以编程方式从数组中选择 map 注释

ios - 如何在同一注释 View (swift3)下更改mapkit中的引脚颜色

ios - mapKit 不显示注释