Swift

通信中はLoadingViewを表示しよう!

LoadingViewを入れるわけ

例えば何かの投稿ボタンを押した時、

押しても反応がないと何度も押してしまったりしますよね。

それで同じ投稿を2度してしまっていたなんてことは避けたいです。

そこで、通信中はIndicator(グルグル回るLoadingView)を表示すれば、以下の利点が生まれます。

  • 通信中であることがユーザーに伝わる
  • 通信中はユーザーのアクションを受け付けない

LoadingViewの作成

 

まずはLadingViewというクラスを作成し、

swiftファイルを以下のように編集します。

import UIKit

class LoadingView: UIView {
    override init(frame: CGRect){
        super.init(frame: frame)
        loadNib()
    }
    
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        loadNib()
    }
    
    func loadNib(){
        let view = Bundle.main.loadNibNamed("LoadingView", owner: self, options: nil)?.first as! UIView
        view.frame = self.bounds
        self.addSubview(view)
    }
}

 

xibファイルには、Activity Indicator View を追加して任意にカスタマイズします。

LoadingViewの呼び出し

 

まずは作成したLoadingViewをでインスタンス化します。

let loadingView: LoadingView = LoadingView()

 

以下の関数を作成し、呼び出したい箇所で呼び出します。

public関数にしておけば、どのViewControllerでも呼び出すことができます。

public func addLoadingView(vc: UIViewController) {
    loadingView.frame = vc.view.frame
    vc.view.addSubview(loadingView)
}
public func removeLoadingView() {
    loadingView.removeFromSuperview()
}

 

呼び出す時は、通信が発生する直前にaddLoadingView()を呼び、

通信処理が完了した時点でremoveLoadingView()を呼ぶことで、通信中のみLoadingViewを表示することができます。

 

LoadingView、ぜひ活用してみてください!

 

 

ABOUT ME
伊原 萌夏
スクール担当 兼 iOS(時々Web)エンジニア。 2019年7月に大学を一年半で辞め、大学とは別で勉強していたプログラムの世界で生きていくことを決意。翌月8月に入社。 主にSwiftのスクールを担当。 趣味は和装でお出かけ。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA