gpt4 book ai didi

ios - 将对象传递给 Google map SDK 中的自定义 View

转载 作者:行者123 更新时间:2023-11-28 12:26:54 33 4
gpt4 key购买 nike

我有自定义 View (一个 Nib 及其类),当用户点击 map 标记时会显示该 View 。我还有一组对象,当用户点击其中一个标记时,我想从中显示所选对象的数据。我用单独的方法从同一个数组创建标记。当用户点击标记时,如何让我的元素进入数组(以显示附加数据)?或者是否有另一种方法可以根据按下的标记从数组中获取对象。除了基于 lon 和 lat 等的正则表达式之外?

最佳答案

我通过添加我的模型来解决这个问题

marker.userData

例子:

func addMarkers(){

for place in places{

let marker = GMSMarker()
let placeLat = place.latitude
let placeLon = place.longitude
marker.position = CLLocationCoordinate2D(latitude: CLLocationDegrees(placeLat), longitude: CLLocationDegrees(placeLon))
marker.appearAnimation = .pop
marker.map = mpView
marker.userData = place

}

}

然后我在以下位置访问它:

func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {

    let title = (marker.userData as! placeModel).name
let add = (marker.userData as! placeModel).address
let id = (marker.userData as! placeModel).id
let image = (marker.userData as! placeModel).image
let imageAddressInDocuments = ("\(getDocumentsDirectory())\(image)")
print("image address in documents %@", imageAddressInDocuments )
var infoWindow = Bundle.main.loadNibNamed("custView", owner: self, options: nil)?.first as! custView
infoWindow.titleLabel.text = title
infoWindow.addressLabel.text = add
infoWindow.restaurantImage.image = image != "" ? UIImage(contentsOfFile: imageAddressInDocuments) : UIImage(named: "addImage")


return infoWindow
}

关于ios - 将对象传递给 Google map SDK 中的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43136616/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com