2017-04-30 136 views
0

我想添加一個自定義信息窗口,以便在有人點擊某個圖釘時在Google地圖中彈出。我已經通過不通過任何數據隱藏當前的信息窗口,並知道該功能將自定義信息窗口添加到Google地圖

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

    return true 
} 

手柄時的針被竊聽發生了什麼。目前,我有這個自定義的UIView和我的MapViewController屬性和相應的網點添加到視圖控制器代碼: enter image description here

我將如何實現這個UIView的彈出每當我點擊一個針?

+0

試試這個https://stackoverflow.com/questions/29462187/creating-custom-info-window-in-swift-with-the-google-maps-ios-sdk –

回答

1

你必須使用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 
} 
2

您應該創建註釋的自定義視圖,然後返回自定義視圖以下方法:

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

我已經試過了,但我的屏幕上沒有顯示任何內容。 – ch1maera

相關問題