【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 を変更する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG