我一直在构建 Google Maps iOS 应用程序,但不知何故我的“didTap 标记”功能不起作用。如果我点击 map 上的标记,整个 View 只会被拖到左边,但不会运行任何代码。否则,下面的打印功能将起作用。哪里可能会导致这个问题?

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)) })
}

最佳答案

您需要为 map View 设置委托(delegate)。

viewDidLoad 中设置委托(delegate)

myGMSMapView.delegate = self

然后用这个方法
 func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
        <#code#>
    }

关于ios - 为什么我的 'didTap marker' 函数不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43225419/

10-12 00:18