我知道有可能捕获标记的信息窗口中的水龙头。 I followed the documentation here
全部都是用Objective C
写的,所以我尝试将其转换为Swift
,这是我的代码:
func mapView(_ mapView: GMSMapView, didTap InfoWindowOfMarker: GMSMarker) {
print("You tapped infowindow")
}
但这根本不会被解雇。该方法有什么问题?
答案 0 :(得分:7)
您需要使用GMSMapView
的代表以及之前的一些设置,如下所示。
声明使用GMSMapViewDelegate
方法并将委托设置为self
:
class yourClassName: UIViewController,GMSMapViewDelegate
mapView?.delegate = self
检测点按infoWindow的方法:
func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) {
print("infowindow tapped")
}
检测点击GMSMarker
的方法:
func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
print("tapped on marker")
if marker.title == "myMarker"{
print("handle specific marker")
}
return true
}
创建自定义infoWindow的方法:
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
let infoWindow = Bundle.main.loadNibNamed("nibName", owner: self, options: nil).first as! ClassName
infoWindow.name.text = "title"
infoWindow.address.text = "relevant address"
infoWindow.photo.image = UIImage(named: "imageName")
return infoWindow
}