我一直在构建谷歌地图iOS应用程序,不知何故我的'didTap标记'功能不起作用。如果我点击地图上的标记,整个视图只是被拖到左边,但没有代码运行。否则,下面的打印功能将起作用。哪里可能会导致这个问题?
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker){
var lat: CLLocationDegrees = marker.position.latitude
var lng: CLLocationDegrees = marker.position.longitude
var formattedCoordinate = CLLocationCoordinate2D(latitude: lat,longitude: lng)
print("markersArray is \(markersArray)")
print("formattedCoordinate is \(formattedCoordinate)")
markersArray = markersArray.filter({ !(($0.latitude == formattedCoordinate.latitude) && ($0.longitude == formattedCoordinate.longitude)) })
}
答案 0 :(得分:6)
您需要为mapview设置委托。
在path "/event_data/%Y/%m/data%d"
<property name="alternatedocroot_1" value="from=/images/* dir=/var/webapp" />
然后使用此方法
viewDidLoad
答案 1 :(得分:-1)
在您的班级中添加此委托。
GMSMapViewDelegate
现在,这将是您的标记动作。
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
mapView.delegate = self
print("You tapped : \(marker.position.latitude),\(marker.position.longitude)")
}