Я пытаюсь создать собственное информационное окно для маркеров на моей карте. Для этого я создал View.xib, чтобы настроить его так, как мне нужно, и я вызываю его из класса, в котором реализована карта. На карте отображаются два маркера, но безрезультатно, когда я нажимаю на маркеры. Как я могу правильно назвать эту точку ??
class MapView: UIView,CLLocationManagerDelegate,GMSMapViewDelegate {
@IBOutlet var contentView: UIView!
let mapView = GMSMapView(frame: CGRect.zero,camera: GMSCameraPosition.camera(withTarget: CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20), zoom: 12))
var marker1 = GMSMarker()
var marker2 = GMSMarker()
override init(frame: CGRect) {
super.init(frame: frame)
initView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initView()
}
private func initView() {
Bundle.main.loadNibNamed("MapView", owner: self, options: nil)
contentView = mapView
markers()
addSubview(mapView)
contentView.frame = self.bounds
mapView.delegate = self
}
func markers()
{
marker1.position = CLLocationCoordinate2D(latitude: -33.861, longitude: 151.20)
marker1.map = mapView
marker1.userData = ["marker": "1"]
marker2.position = CLLocationCoordinate2D(latitude: -33.859, longitude: 151.21)
marker2.map = mapView
marker2.userData = ["marker": "2"]
}
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
var markerData : [String:Any]?
if let data = marker.userData as? [String:Any] {
markerData = data
}
print(#function, "\(markerData?["marker"] as? String ?? "")")
return true
}
func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
return UINib(nibName: "customInfoWindowView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! customInfoWindowView
}
}
customInfoWindowView.swift
class customInfoWindowView: UIView {
@IBOutlet weak var contentView:UIView!
override init(frame: CGRect) {
super.init(frame: frame)
initView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initView()
}
private func initView() {
Bundle.main.loadNibNamed("customInfoWindowView", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
}
}