2017-04-30 21 views
0

誰かがピンをタップするたびにGoogleマップでポップアップするカスタム情報ウィンドウを追加したいと思います。私はすでにデータを渡さずに現在の情報ウィンドウを隠しておき、その機能を知っていますGoogleマップにカスタム情報ウィンドウを追加する

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

    return true 
} 

ハンドルピンがタップされると何が起こりますか。私は現在、このカスタムUIViewのを持っているし、私のMapViewControllerの属性と対応する出口はViewControllerをコードに追加: enter image description here

がどのように私はピンをタップするたびにポップアップ表示するには、このUIViewのを実装するのでしょうか?

+0

このhttps://stackoverflow.com/questions/29462187/creating-custom-info-window-in-swift-with-the-google-maps-ios-sdkを試みるが –

答えて

1

あなたのクラスにmarkerInfoWindowを使用するようにGMSMapViewDelegateを使用する必要があります。

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

あなたは、注釈のためのカスタムビューを作成し、以下の方法のためにそのカスタムビューを返す必要があります:

func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? { 
//Create and load your custom view here and then return the view 
} 
+0

私が試したことが、私の画面に何も表示されません。 – ch1maera

関連する問題