我有一张放置了许多针脚的地图。我还有以下代码
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView){
print("Test")
}
当我敲击引脚时,功能输入正确并且"测试"打印到控制台。我面临的问题是,在相同引脚的敲击之后不会导致执行上述代码。
要让代码再次执行,我必须点击另一个引脚,然后再次点击原始引脚。
无论敲击多少次
,如何触发上述功能答案 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)
}
}