UIKitには、ユーザに処理中であることを表示する機能があります。今回は、その機能であるUIActivityIndicatorViewに関して、使い方等を解説していきたいと思います。
全体のコード
まず、UIActivityIndicatorViewを活用したぐるぐる表示の全体コードを下記に記載します。
let activityIndicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
activityIndicator.center = view.center
activityIndicator.color = UIColor.white
activityIndicator.style = UIActivityIndicatorView.Style.large
activityIndicator.hidesWhenStopped = true
activityIndicator.startAnimating()// 表示開始
view.addSubview(activityIndicator)
activityIndicator.stopAnimating() // 表示終了
view.removeFromSuperview()
表示・非表示までの大まかな流れ
- ぐるぐる表示のデザイン、サイズ、表示位置を決める
- 表示を開始する・アニメーションを開始する
- 表示を終了する・アニメーションを終了する
ぐるぐる表示のデザイン、サイズ、表示位置等を決める
SwiftのUIKitでは、アクティビティインジケーター(ぐるぐる表示)が用意されています。
デザインや表示サイズ、表示位置を細かく指定することが出来ます。
デザイン
アクティビティインジケーターの色を決めることが出来ます。
白色を利用されるケースが多いです。白色を指定する場合は下記のようにUIColorで指定します。
activityIndicator.color = UIColor.white
サイズ
アクティビティインジケーターは表示サイズが2つ用意されています。
・標準サイズ
activityIndicator.style = UIActivityIndicatorView.Style.medium
・大きいサイズ
activityIndicator.style = UIActivityIndicatorView.Style.large
表示位置
アクティビティインジケーターの表示を決めることが出来ます。
一般的に表示位置は真ん中であることが多いので、下記には真ん中を指定するコードにしています。
activityIndicator.center = view.center
アニメーション停止時の動作
アクティビティインジケーターのアニメーションを停止したときに、表示したままにすることや、非表示にすることが出来ます。
アニメーションを停止したときに、非表示にする場合は、hidesWhenStoppedをtrueにします。
表示したままにする場合は、falseにします。
activityIndicator.hidesWhenStopped = true
廃止されたもの(利用できなくなったもの)
下記プロパティは廃止されました。もし、プログラム内で利用されている場合は変更してください。
whiteLarge
下記コードは今は使えません。styleプロパティではサイズを指定します。白色を指定したい場合は、colorプロパティにて指定を行います。
activityIndicator.style = .whiteLarge
white
下記コードは今は使えません。styleプロパティではサイズを指定します。白色を指定したい場合は、colorプロパティにて指定を行います。
activityIndicator.style = .white
gray
下記コードは今は使えません。styleプロパティではサイズを指定します。灰色を指定したい場合は、colorプロパティにて指定を行います。
activityIndicator.style = .gray
表示を開始する・アニメーションを開始する
アクティビティインジケーターのアニメーションを開始するコードは以下の通りです。
activityIndicator.startAnimating()// 表示開始
startAnimating()でアニメーションを開始することができます。
アニメーション開始後にサブビューを追加し、実際に表示させます。
view.addSubview(activityIndicator)
表示を終了する・アニメーションを終了する
アクティビティインジケーターのアニメーションを終了するコードは以下の通りです。
activityIndicator.stopAnimating() // 表示終了
サブビューを追加して表示していた場合はサブビューも非表示にさせる必要があります。
view.removeFromSuperview()
下記記事では、SwiftUIやUIKitでロード中表示(処理中表示)を実装する方法について詳細に紹介しています。
コメント