【Xcode/Swift】SVProgressHUDを使ってみよう

今回はSVProgressHUDというライブラリの使い方を解説します。

何かの処理中にグルグル回るアニメーションみたいなものです。

Storyboard


ひとくちメモ

今回のようにパーツごとにプログラムと繋げても良いですが、一つのコードで管理することも出来るので余裕が有れば以下記事も読んでみてください。

【Xcode/Swift】同じパーツなら一つのコードで管理すればいいじゃないか (Outlet Collection)

ライブラリの追加、コーディング

ライブラリのインストール

それではPodファイルを作成してライブラリをインストールしていきましょう。

pod 'SVProgressHUD'

コードの記述

それではコードを記述していきましょう。

import UIKit
import SVProgressHUD

class HomeViewController: UIViewController {

    @IBOutlet private weak var normalProgressButton: UIButton!
    @IBOutlet private weak var textProgressButton: UIButton!
    @IBOutlet private weak var percentageProgressButton: UIButton!
    @IBOutlet private weak var popUpButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func normalProgressAction(_ sender: Any) {
        SVProgressHUD.show()
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            SVProgressHUD.dismiss()
        }
    }

    @IBAction func textProgressAction(_ sender: Any) {
        SVProgressHUD.show(withStatus: "処理中です")
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            SVProgressHUD.showSuccess(withStatus: "Done!")
            SVProgressHUD.dismiss()
        }
    }

    @IBAction func percentageProgressAction(_ sender: Any) {
        SVProgressHUD.showProgress(0.4)
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            SVProgressHUD.dismiss()
        }
    }

    @IBAction func popUpAction(_ sender: Any) {
        SVProgressHUD.showInfo(withStatus: "Information")
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            SVProgressHUD.dismiss()
        }
    }

}
ひとくちメモ

今回のライブラリを使用するためにはどうやらAppDelegate.swiftSceneDelegate.swiftにも記述が必要らしいので以下コードを加えておきましょう。

AppDelegate.swiftには

var window: UIWindow?

SceneDelegate.swiftには

guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
appDelegate.window = self.windowappDelegate.window = self.window

を追記する。

まとめ

今回は以上です、何か処理をさせている時にこのようなアニメーションがあるとユーザ側もフリーズしたのではないと勘違いすることが無くなるので有効活用していきましょう。

◎今日の格言

ー Henry Ford

Henry
Henry

Whether you think you can or you think you can’t, you’re right.

(出来ると思おうが出来まいと思おうがどちらも正しい)