Mar*_*s K 3 google-maps ios swift
我正在使用这个简单的MyMarker类
class MyMarker: GMSMarker {
var id: UInt32 = 0
}
Run Code Online (Sandbox Code Playgroud)
这样我的标记也可以包含额外的数字标记.当用户点击我的标记时,我打电话给a segue打开一个新的场景,其中的内容是动态的并且是相对于MyMarkers的绘制的id.我想做的事情如下:
func mapView(mapView: GMSMapView, didTapMarker marker: MyMarker) -> Bool {
some_global_variable = marker.id;
performSegueWithIdentifier("segue", sender: nil)
return true
}
Run Code Online (Sandbox Code Playgroud)
问题当然是GMSMapViewDelegate期望标记是类型的 GMSMarker.
我怎样才能实现我追求的行为?
您需要GMSMarker在其委托方法中键入强制转换为自定义标记,不要更改GMSMapViewDelegate方法的签名.
func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
if let myMarker = marker as? MyMarker {
some_global_variable = myMarker.id
performSegueWithIdentifier("segue", sender: nil)
}
return true
}
Run Code Online (Sandbox Code Playgroud)