GMSMapView
というデリゲートを使用する必要があります。これについては、下記の設定を参照してください。
はGMSMapViewDelegate
方法の使用を宣言し、self
にデリゲートを設定します。情報ウィンドウ上でタップを検出する
class yourClassName: UIViewController,GMSMapViewDelegate
mapView?.delegate = self
方法:GMSMarker
にタップを検出する
func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) {
print("infowindow tapped")
}
方法:
func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
print("tapped on marker")
if marker.title == "myMarker"{
print("handle specific marker")
}
return true
}
メソッドは、カスタム情報ウィンドウを作成します。
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
}
後半更新のための私の謝罪は、今..あなたは、デリゲートを設定するために欠けている – vaibhav
を、それが完璧に動作しているANSを参照してくださいと私は見てください '_'ありあなたのメソッドの中にマークを付けると、私のansをチェックするだけで実行できなくなる可能性があります。 – vaibhav