タイトル通り、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 で読み込み中を表すインジケーターを表示する方法でした。
ご参考になれば幸いです。