(iOS/swift4) 간단한 로딩 view 띄우기 (UIActivityIndicatorView)
UIActivityIndicatorView 를 이용한 간단한 로딩 뷰 띄우기 (뷰 교체 형식)
1. UIViewController 를 상속받을 ExtensionVC.swift 를 하나 만든다.
2. ExtensionVC.swift 에 extension 하여 아래와 같은 코드를 작성한다.
import UIKit
class ExtensionVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension UIViewController {
class func displaySpinner(onView: UIView) -> UIView {
let spinnerView = UIView.init(frame: onView.bounds)
spinnerView.backgroundColor = UIColor.init(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)
let ai = UIActivityIndicatorView.init(style: .whiteLarge)
ai.startAnimating()
ai.center = spinnerView.center
DispatchQueue.main.async {
spinnerView.addSubview(ai)
onView.addSubview(spinnerView)
}
return spinnerView
}
class func removeSpinner(spinner : UIView) {
DispatchQueue.main.async {
spinner.removeFromSuperview()
}
}
}
3. 로딩화면을 사용할 ViewController 에서 UIViewController 대신, ExtensionVC 를 상속받는다.
class MainVC: ExtensionVC, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {...}
4. displaySpinner() 로 로딩창을 호출한다.
let sv = UIViewController.displaySpinner(onView: self.view)
5. removeFromSuperView() 로 로딩창을 파괴한다.
sv.removeFromSuperview()