import UIKit
open class Spinner {
internal static var spinner: UIActivityIndicatorView?
public static var style: UIActivityIndicatorView.Style = .whiteLarge
public static var baseBackColor = UIColor.black.withAlphaComponent(0.5)
public static var baseColor = UIColor.white
public static func start(style: UIActivityIndicatorView.Style = style, backColor: UIColor = baseBackColor, baseColor: UIColor = baseColor) {
NotificationCenter.default.addObserver(self, selector: #selector(update), name: UIDevice.orientationDidChangeNotification, object: nil)
if spinner == nil, let window = UIApplication.shared.keyWindow {
let frame = UIScreen.main.bounds
spinner = UIActivityIndicatorView(frame: frame)
spinner!.backgroundColor = backColor
spinner!.style = style
spinner?.color = baseColor
window.addSubview(spinner!)
spinner!.startAnimating()
}
}
public static func stop() {
if spinner != nil {
spinner!.stopAnimating()
spinner!.removeFromSuperview()
spinner = nil
}
}
@objc public static func update() {
if spinner != nil {
stop()
start()
}
}
}
링크)
https://gist.github.com/michal-majchrzycki/9e41a6ab195e931b5e33336dbf433427
'iOS > Swift' 카테고리의 다른 글
[Swift] Decodable로 들어오는 타입이 두 가지 일때 (0) | 2019.09.03 |
---|---|
[Swift] navigationController is nil (in .xib) (0) | 2019.08.29 |
[Swift] Swift에서 xib파일로 작업하기 (0) | 2018.11.08 |
[Swift] Objective-C Framework와 cocoapods 라이브러리 함께 사용하기 (0) | 2018.11.05 |
[Swift] Naver Map API 사용하기 (0) | 2018.11.02 |