2017-01-07 3 views
1

Я использую этот код, чтобы вернуть 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?

Спасибо!

+0

Попробуйте обновить один раз вы УИ на главном потоке, в быстром 3 это 'DispatchQueue.main.async {customInfoWindow.title = userModel.name}' –

+0

DispatchQueue.main.async {customInfoWindow.title = userModel.name} У меня есть попытка, но это не сработало. –

+0

'func mapView (_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {return marker} ' этот метод автоматического вызова GoogleMap lib после нажатия на маркер, поэтому я не могу обрабатывать все, прежде чем этот метод вызывается. –

ответ

0

Поскольку вы используете async попробовать перезагрузить посмотреть на карте

self.map.reloadInputViews() 
+0

не сработал для меня –

+0

Добавили ли вы DispatchQueue.main.async {self.map.reloadInputViews() customInfoWindow.title = userModel.name} внутри блока 'Alamofire'? – Nour

+0

Да, всегда запускается в основной теме UI –

Смежные вопросы