2016-10-03 9 views
0

マーカーの情報ウィンドウのタップをキャプチャすることは可能です。 I followed the documentation hereSwiftのInfowWindowタップを聞きます

func mapView(_ mapView: GMSMapView, didTap InfoWindowOfMarker: GMSMarker) { 
     print("You tapped infowindow") 

    } 

しかし、これがすべてでは解雇されていません。

すべてがObjective Cで書かれているので、私はSwiftに変換しようとした、ここに私のコードです。どのような方法で問題がありますか?

+0

後半更新のための私の謝罪は、今..あなたは、デリゲートを設定するために欠けている – vaibhav

+0

を、それが完璧に動作しているANSを参照してくださいと私は見てください '_'ありあなたのメソッドの中にマークを付けると、私のansをチェックするだけで実行できなくなる可能性があります。 – vaibhav

答えて

5

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 
    } 
+0

こんにちは。あなたのコードは、カスタム情報ウィンドウ用です。私はそれを探していません。ごめんなさい。インフォマーマーのタップイベントを探しています –

+0

カスタムウィンドウが必要ない場合はここでマーカー変数を使用できます。 – vaibhav

+0

マーカだけでなくインフォウィンドウもタップする必要があります –

関連する問題