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
}
が、私はタイトルを更新したときに後どのように私は、コールAPIの後にこのラベルを更新するために行うことができます
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を呼び出しますか?
ありがとうございました!
マップビューをリロードする
async
試しを使用しているため、迅速な3で、それは '' DispatchQueue.main.async {customInfoWindow.title = userModel.name}です –DispatchQueue.main.async {customInfoWindow.title = userModel.name} 私は試してみましたが、うまくいきませんでした。 –
'func mapView(_ mapView:GMSMapView、markerInfoWindowマーカー:GMSMarker) - > UIView? {return marker} ' このメソッドは、マーカーをクリックした後にGoogleマップlibによって自動的に呼び出されるため、このメソッドが呼び出される前にすべての処理ができません。 –