【Swift】メインスレッド以外で UILabel のテキストを更新する

村上 著者:村上

【Swift】メインスレッド以外で UILabel のテキストを更新する

Swift でアプリを開発している際、HTTP 通信が完了した後など、メインスレッド以外で UI を更新したいという状況になったため、その方法についてまとめ。
本来はメインスレッド以外での UI の更新は非推奨なので、場合によっては挙動が変になることがあるとのこと。
なので、どうしても!という時以外は、メインスレッドで行うようにしましょう。

今回参考にさせていただいた記事はこちらから。

swift – swiftでHTTP通信をした後にUILabelのtextを変更する時に時間がかかる – スタック・オーバーフロー
https://ja.stackoverflow.com/questions/7839/swiftでHTTP通信をした後にUILabelのtextを変更する時に時間がかかる

 

実装方法は簡単で、UI の更新処理を下記の記述で囲むだけです。

OperationQueue.main.addOperation({
    // UI の更新処理を記述する
    textLabel.text = "変更後の文字列"
})

私の場合は 3行目のように、この処理の中で UILabel の更新処理を行なっています。
追加する内容としては以上です。
あとは、実際にアプリを実行してみたところ、問題なく UILabel の内容が書き換わることが確認できました!

 

以上、Swift でメインスレッド以外の場所で UI を変更する方法でした。
ご参考になれば幸いです。

  • この記事いいね! (0)

著者について

村上

村上 administrator