【Swift】読み込み中を表すインジゲーターを表示する方法

タイトル通り、iOS アプリにインジゲーターを表示する方法です。
予想以上に簡単だったので、備忘録兼、今後のコピペ元にするためにまとめ。

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

【Swift】UIActivityIndicatorViewを使う【ぐるぐる】 – Qiita
https://qiita.com/wai21/items/aa105f167bc94a94fe51

 

まず、viewDidLoad() 内に下記を追加し、インジケーターの位置や色などの設定を行います。

// インジゲーターの設定
var indicator = UIActivityIndicatorView()
// 表示位置を設定(画面中央)
indicator.center = view.center
// インジケーターのスタイルを指定(白色&大きいサイズ)
indicator.style = .whiteLarge
// インジケーターの色を設定(青色)
indicator.color = UIColor(red: 44/255, green: 169/255, blue: 225/255, alpha: 1)
// インジケーターを View に追加
view.addSubview(indicator)

今回は、標準サイズよりも大きめのサイズで、色は iOS で使われている青色にしています。
基本的な設定は上記だけで OK です。
なお、.color については .style の後に記述しないと無効になってしまうそうなのでご注意ください。

が、これだけだと表示されないので、インジケーターを表示したいタイミングで下記を呼び出します。

// インジケーターを表示&アニメーション開始
indicator.startAnimating()

で、終了したいタイミングで下記を呼び出します。

// インジケーターを非表示&アニメーション終了
indicator.stopAnimating()

実装についてはこれだけです!

なお、インジケーターの表示/非表示はメインスレッドで行う必要があるので、状況に合わせて下記のように記述するようにしてください。

DispatchQueue.main.async {
    // メインスレッドでインジケーターを停止する
    indicator.stopAnimating()
}

他にも、.isAnimating プロパティでアニメーションがされているかを取得したり、.hidesWhenStopped でアニメーションしていない時に非表示にするかどうかを指定できます。
こちらも環境に合わせて指定してください。

 

以上、Swift で読み込み中を表すインジケーターを表示する方法でした。
ご参考になれば幸いです。

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

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

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

CTR IMG