Jay*_*ayo 1 ios google-maps-sdk-ios swift
我知道有可能捕获标记的infowindow中的水龙头.我按照这里的文档.
所有都是写的,Objective C所以我尝试将其转换为Swift,这是我的代码:
func mapView(_ mapView: GMSMapView, didTap InfoWindowOfMarker: GMSMarker) {
print("You tapped infowindow")
}
Run Code Online (Sandbox Code Playgroud)
但这根本不会被解雇.这个方法有什么问题?
您需要使用代理GMSMapView以及一些先前的设置,请参阅下文.
声明GMSMapViewDelegate方法的使用并将委托设置为self:
class yourClassName: UIViewController,GMSMapViewDelegate
mapView?.delegate = self
Run Code Online (Sandbox Code Playgroud)
在infoWindow上检测点击的方法:
func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) {
print("infowindow tapped")
}
Run Code Online (Sandbox Code Playgroud)
检测点击的方法GMSMarker:
func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
print("tapped on marker")
if marker.title == "myMarker"{
print("handle specific marker")
}
return true
}
Run Code Online (Sandbox Code Playgroud)
创建自定义infoWindow的方法:
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |