회원가입 처리가 되는 동안 약간의 딜레이가 있어서 로딩창을 구현해 보았다!
import UIKit
class ExtensionVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
extension UIViewController {
class func displaySpinner(onView: UIView) -> UIView {
let spinnerView = UIView.init(frame: onView.bounds)
spinnerView.backgroundColor = .white
let ai = UIActivityIndicatorView.init(style: .medium)
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()
}
}
}
class SelectViewController: ExtensionVC, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {
...
}
나는 로딩 시작과 끝이 각각 다른 함수 내에서 이루어져서 먼저 UIView 변수를 위에 선언해 주었다.
weak var sv: UIView!
func signUp() {
sv = UIViewController.displaySpinner(onView: self.view)
...
}
self.sv.removeFromSuperview()
회원가입이 진행되는 동안 로딩창이 나오고 통신이 끝나면 로딩창이 꺼진 후 홈 화면으로 이동된다.
많은 도움이 되었습니다, 감사합니다.