大量のラベル更新を行う関数を呼び出すループ中にView Controllerを更新しようとしています。しかし、私がループを終えるまで、画面の更新は起こりません。UI表示を強制的に更新する方法を教えてください。
続行する前に強制的にUIを更新する方法はありますか?データを強制的にディスクに書き込むようなもの。
ループを開始するためのボタンのコードは次のようなものです:playSingleBall後
while (match.currentInnings == currentInnings)
{
playSingleBall()
if (gameover == true)
{
return
}
}
、私は続行する前にUIの更新を強制したいと思います。
ありがとうございました。
を、これがメインスレッド上で実行されていることを仮定しますループを終了するまで、UIの更新は実行できません。 UIを更新したい場合は、バックグラウンドスレッドで上記のループを実行してから、UI更新をメインスレッドにディスパッチする必要があります。あるいは、この「while」ループを完全に廃止してください。 – Rob
@LankybritあなたのUIのどの要素をここで更新しようとしていますか?また、ループはしばしばメモリ使用に問題を引き起こすので、私はそれらから離れています。 – Stefan
playSingleBallの内部では、結果を計算してディスプレイ全体を更新します。それは約40のラベルです。 – Lankybrit