我想添加一个自定义信息窗口,每当有人点击一个pin时,就会在Google地图中弹出。我已经通过不传递任何数据隐藏了当前信息窗口,并且知道

func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool {

    return true
}

处理触针时发生的情况。我的MapViewController和添加到ViewController代码中的相应出口上当前具有此自定义UIView和属性:
ios - 将自定义信息窗口添加到Google Maps-LMLPHP
我如何实现这个UIView,以便每当我点击一个pin时弹出?

最佳答案

你必须使用GMSMapViewDelegate才能在课堂上使用markerInfoWindow。

let mapview = GMSMapView.map(withFrame: CGRect.zero, camera: camera)

mapview.delegate = self


func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
    // Get a reference for the custom overlay
    let index:Int! = Int(marker.accessibilityLabel!)
    let customInfoWindow = Bundle.main.loadNibNamed("CustomInfoWindow", owner: self, options: nil)?[0] as! CustomInfoWindow
    customInfoWindow.Timings.text = States[index].time
    customInfoWindow.Title.text = States[index].name
    customInfoWindow.Direction_Button.tag = index
    customInfoWindow.Direction_Button.addTarget(self, action: #selector(GetDirectionsAction(sender:)), for: .touchUpInside)

    return customInfoWindow
}

关于ios - 将自定义信息窗口添加到Google Maps,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43711217/

10-11 15:05