didSelect只针对相同的针脚发射一次

时间:2017-01-24 20:39:26

标签: swift mkmapview

我有一张放置了许多针脚的地图。我还有以下代码

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView){
    print("Test")
}

当我敲击引脚时,功能输入正确并且"测试"打印到控制台。我面临的问题是,在相同引脚的敲击之后不会导致执行上述代码。

要让代码再次执行,我必须点击另一个引脚,然后再次点击原始引脚。

无论敲击多少次

,如何触发上述功能

2 个答案:

答案 0 :(得分:2)

当引脚选择时调用该方法,而不是在它被点击时调用 - 虽然第一次点击它会导致选择,这将保持到直到另一个引脚被点击,或者选择被清除编程。

您需要在使用mapView.deselectAnnotation再次调用方法之前取消选择它,您可以在didSelect内执行此操作。

答案 1 :(得分:0)

您需要清除所选注释以再次选择它。

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
       let selectedAnnotations = mapView.selectedAnnotations
        for annotation in selectedAnnotations {
            mapView.deselectAnnotation(annotation, animated: false)
        }
  }