1

私はオンラインで検索しましたが、私の質問に関連する回答が見つかりませんでした。誰かが私を助けてくれることを願っています。前もって感謝します! ここにFirebase observeEvent関数があります。FirebaseのUIをアップデートする方法observeEventブロックiOS

ref.child("path").observeSingleEvent(of: .value, with: { (snapshot) in 
// here I have a for loop 
for (_, dict) snapshot.value as! NSDictionary { 
    // do something... 
    // 
    // here I would like to do some UI updating, like a progress bar, or just as simple as update the text in a label 
    label.text = "an object fetched." 
} 
// I used to do some UI update here, and it works, like tableview.reloadData(), but this time I would like the UI updating happen in that for loop 

}) { (error) in 
    print(error.localizedDescription) 
} 

誰かがこれを手伝ってくれますか?試しました

DispatchQueue.main.async { 
// UI update here but it doesn't work 
} 

誰かが私に助けてくれると感謝します。

+0

誰か助けてくれますか?ありがとう。 Firebaseデータベースでプログレスバーアニメーションを実装したいと思います。 –

+0

解決方法[こちら](http://stackoverflow.com/questions/6835472/uilabel-text-not-being-updated)を確認してください。 –

答えて

0

メイン/ UIスレッドでFirebaseイベントコールバックが発生します。ディスパッチキューを経由する必要はありませんが、コールバック内からUIを更新するだけで済みます。

+0

でも、 "label.text =" blablabla ""のように直接UIを更新しようとしましたが、うまくいきませんでした。 –

+0

forループの後にいくつかのUIを更新すれば動作します。しかし、今私が実装しようとしていることは、プログレスバーのようなものです。ループが100回繰り返されるので、1ループごとにUIを更新したいと思いますが、forループ内では機能しません –

関連する問題