| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- //
- // LoadingView.swift
- // Fei
- //
- // Created by mcvivi on 2022/3/31.
- //
- import UIKit
- import APNGKit
- extension UIWindow
- {
- class var window:UIWindow{
- let window = UIApplication.shared.connectedScenes
- .map({ $0 as? UIWindowScene })
- .compactMap({ $0 })
- .first?.windows.first
- if(!window!.isHidden){
- return window!;
- }
- return (UIApplication.shared.delegate?.window!)!;
- }
- }
- extension LoadingView{
- class func show(){
- let window = UIWindow.window
- shared.loadingView.center = window.center
- window.addSubview(shared.loadingViewBackground)
- shared.label.text = "加载中..."
- shared.loadingViewBackground.alpha = 0
- shared.loadingViewBackground.addSubview(shared.loadingView)
- shared.loadingView.addSubview(shared.imageView)
- shared.loadingView.addSubview(shared.label)
- UIView.animate(withDuration: 0.3) {
- shared.loadingViewBackground.alpha = 1
- }
- }
-
- class func complete(){
- DispatchQueue.main.asyncAfter(deadline: .now()+1, execute:
- {
- UIView.animate(withDuration: 0.3) {
- shared.loadingViewBackground.alpha = 0
- } completion: { (bool) in
- shared.loadingViewBackground.removeFromSuperview()
- }
- })
- }
-
- }
- class LoadingView: NSObject {
- fileprivate static let shared:LoadingView = LoadingView()
-
- static var width = 400.0
- static var height = 700.0
-
- var loadingViewBackground:UIView = {
- let loadingViewBackground = UIView(frame: CGRect.init(x: 0, y: 0, width: width, height: height))
- loadingViewBackground.backgroundColor = .white
- return loadingViewBackground
- }()
-
- var loadingView:UIView = {
- let loadingViewSideLength = 109*LoadingView.width/375
- let loadingViewXDistance = (LoadingView.width-loadingViewSideLength)/2
- let loadingViewYDistance = (LoadingView.height-loadingViewSideLength)/2
- let loadingView = UIView(frame: CGRect.init(x: loadingViewXDistance, y: loadingViewYDistance, width: loadingViewSideLength, height: loadingViewSideLength))
- loadingView.backgroundColor = .black
- loadingView.layer.opacity = 0.65
- loadingView.layer.cornerRadius = 12
- return loadingView
- }()
-
- var label:UILabel = {
- let loadingLabelWidth = 52.5*LoadingView.width/375
- let loadingLabelHeight = 12.5*LoadingView.width/375
- let loadingLabelXDistance = 30.5*LoadingView.width/375
- let loadingLabelYDistance = 66.5*LoadingView.width/375
- let loadingLabel = UILabel(frame: CGRect(x: loadingLabelXDistance, y: loadingLabelYDistance, width: loadingLabelWidth, height: loadingLabelHeight))
- loadingLabel.text = "加载中..."
- loadingLabel.textColor = .white
- loadingLabel.font = UIFont.init(name: "PingFang-SC-Medium", size: 13*LoadingView.width/375)
- return loadingLabel
- }()
-
- var imageView:APNGImageView = {
- do {
- let loadingImageSideLength = 28*LoadingView.width/375
- let loadingImageXDistance = 40.5*LoadingView.width/375
- let loadingImageYDistance = 30.5*LoadingView.width/375
- let image = try APNGImage(named: "jz_00_iSpt")
- let loadingViewImageView = APNGImageView(image: image)
- loadingViewImageView.frame = CGRect(x: loadingImageXDistance, y: loadingImageYDistance, width: loadingImageSideLength, height: loadingImageSideLength)
- return loadingViewImageView
- }catch {
-
- }
- return APNGImageView.init(frame: CGRect.init(x: 0.0, y: 0.0, width: 0.0, height: 0.0))
- }()
-
- }
|