我正在尝试找出为我的标记添加自定义属性/数据的方法。
我使用过什么
其他信息我想存储在InfoWindow上显示
描述(字符串)
数字(Int)
如果有更有效的方法来存储和检索要在infowindow上显示的自定义数据/属性,那将是很好的。目前任何建议都很有价值。
以下是我目前的内容摘录: 设置标记数据:
marker.title = object["objectTitle"] as! String
marker.snippet = objecti.objectId
marker.icon = UIImage(named:"markerImage")
marker.userData = UIImage(data:imageData!)
信息窗口:
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
var infoWindow :CustomInfoWindow = NSBundle.mainBundle().loadNibNamed("eventInfo", owner: self, options: nil)[0] as! CustomInfoWindow
infoWindow.eventTitle.text = marker.title
infoWindow.Image.image = marker.userData as? UIImage
marker.userData = UIImage(data:imageData!)
marker.snippet = object.objectId
return infoWindow
}
答案 0 :(得分:11)
我刚刚开始学习Swift时遇到了你的问题,但是你觉得这样的事情会起作用吗?
var myData = Dictionary<String, Any>()
myData["image"] = UIImage(data:imageData!)
myData["description"] = "The description"
myData["number"] = 1
marker.userData = myData
这是一种存储我刚刚学到的多种数据类型的技术。
答案 1 :(得分:5)
我创建了一个包含我需要的所有数据的结构,并将其放在marker.userdata中,因为它支持Any类型。
let data = structName(lat: place.lat, long: place.long) // initialize struct
marker.userData = data
Aceess就像这样:
let markerLat = (marker.userData as! structName).lat
let markerLong = (marker.userData as! structName).long