2017-06-14 6 views
1

私は単純なiOSアプリケーションに少し問題があります: 2つのビューしかありません。最初のものは2番目のものに送信されます(非同期的に2番目のデータが表示されます。ダウンロードしたものですが、これらのデータをコンソールに表示すると、非常に高速にダウンロードされていることがわかります)。次のビューの編集ラベルは非常に長い

labelの変更を表示するには、数秒(10秒から20秒)を待たなければならないという問題があります。 この問題は、labelでのみ発生します。たとえば、labelの後に私のimageViewが入力され、画像の変更が即座に適用されます。ここで

が第一ビューのコードです:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if (segue.identifier == "profilevc") 
     { 
      let dvc = segue.destination as! ProfileController; 
      dvc.data = self.loginField.text; 
      _ = ftRemote(login: dvc.data, view: dvc); 
     } 
    } 

、ここではlabelが移入されているftRemote()に呼び出される関数です:

private func populateView(user: UserProfile) 
    { 
     self.pfView.loginLabel.text = user.login; 
     self.pfView.fullnameLabel.text = user.firstname! + " " + user.lastname!; 
     self.pfView.phoneLabel.text = user.phone; 
     self.pfView.walletLabel.text = "Wallet: " + String(Int(user.wallet!)) 
     self.pfView.correctionLabel.text = "Correction: " + String(Int(user.correctionPoints!)) 
     self.pfView.levelLabel.text = String(Float(user.level!)) 
     self.pfView.profilePicture.downloadedFrom(link: user.imageUrl!) 
    } 

誰かがこの遅延を説明できますか?

ありがとうございます。

+0

UIの更新はメインキューで行う必要があります。 – rmaddy

答えて

0

メインスレッドでは、必ずUI関連の操作を実行してください。 populateViewを次のように呼び出します。

DispatchQueue.main.async { 
    // actions with you UI, e.g. populateView(...) call 
} 
関連する問題