我正在从url将图像加载到google map信息窗口中,当我在主线程中加载图像时,它会显示但会阻止UI,并且当我尝试加载异步时,一旦显示窗口,它现在就会显示。
这是代码。
func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
let index = marker.iconView?.tag ?? 0
let place = self.arryPlaces[index]
let customMarker:PlaceInfoWindow = PlaceInfoWindow.instanceFromNib()
customMarker.lblTitle.text = place.title
customMarker.lblAddress.text = place.address
DispatchQueue.global(qos: .background).async {
if let url = URL(string: place.thumb ?? "")
{
do {
let imageData = try Data(contentsOf: url)
DispatchQueue.main.async {
customMarker.imgPlaceIcon.image = UIImage(data: imageData)
}
} catch {
print("Unable to load data: \(error)")
}
}
}
)
return customMarker as! UIView
}
我在这里做错了什么,我正在为Google地图标记创建自定义信息窗口。 请帮助