Я использую этот код, чтобы вернуть GoogleMarkerInfoWindow, и он отлично работает!swift 3 не может обновить содержимое markerinfowindow после вызова API
func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
let customInfoWindow = Bundle.main.loadNibNamed("customInfoWindown", owner: self, options: nil)?[0] as! CustomInfoWindowns
customInfoWindow.title = "This is title"
return customInfoWindow
}
, но когда я обновить название после вызова АНИ, то я не могу обновить эту метку
func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
let customInfoWindow = Bundle.main.loadNibNamed("customInfoWindown", owner: self, options: nil)?[0] as! CustomInfoWindowns
let id = marker.userData as? String
UserManager.sharedInstance.getUserInfo(id, onComplete: {(content, error) in
let userModel = UserModel.convertStringToUserModel(content!)
DispatchQueue.main.async {
customInfoWindow.title = userModel.name // this code didn't work
}
})
return customInfoWindow
}
Как я могу сделать, чтобы обновить эту метку после вызова API?
Спасибо!
Попробуйте обновить один раз вы УИ на главном потоке, в быстром 3 это 'DispatchQueue.main.async {customInfoWindow.title = userModel.name}' –
DispatchQueue.main.async {customInfoWindow.title = userModel.name} У меня есть попытка, но это не сработало. –
'func mapView (_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {return marker} ' этот метод автоматического вызова GoogleMap lib после нажатия на маркер, поэтому я не могу обрабатывать все, прежде чем этот метод вызывается. –