如何使用 Swift 创建自定义类加载视图

Tes*_*App 4 loading ios swift

我正在通过自定义类加载视图实现加载概念。我需要通过使用 simpleself.show()self.dismissfunction 来使用这个自定义类。UIActivityController在这里,我通过使用inside实现了这个概念UIAlertView,但我需要使用自定义类来实现这一点。

\n\n

下面的代码是我通过使用UIActivityController内部实现的UIAlertView

\n\n
func loadinHubShow() {\n                let alert = UIAlertController(title: nil, message: "Please wait...", preferredStyle: .alert)\n                let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50))\n                loadingIndicator.hidesWhenStopped = true\n                loadingIndicator.style = UIActivityIndicatorView.Style.gray\n                loadingIndicator.startAnimating();\n                alert.view.addSubview(loadingIndicator)\n                present(alert, animated: true, completion: nil)\n    }\n\nfunc loadinHubDismiss() {\n     dismiss(animated: false, completion: nil)\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何将其更改为自定义类loading view。我不想在 xe2x80x99UIActivityController内使用UIAlertView,或者需要UI design通过 来创建相同的外观和感觉UIView

\n\n

\n

Ani*_*mar 6

import Foundation
import UIKit

public class Indicator {

    public static let sharedInstance = Indicator()
    var blurImg = UIImageView()
    var indicator = UIActivityIndicatorView()

    private init()
    {
        blurImg.frame = UIScreen.main.bounds
        blurImg.backgroundColor = UIColor.black
        blurImg.isUserInteractionEnabled = true
        blurImg.alpha = 0.5
        indicator.style = .whiteLarge
        indicator.center = blurImg.center
        indicator.startAnimating()
        indicator.color = .red
    }

    func showIndicator(){
        DispatchQueue.main.async( execute: {

            UIApplication.shared.keyWindow?.addSubview(self.blurImg)
            UIApplication.shared.keyWindow?.addSubview(self.indicator)
        })
    }
    func hideIndicator(){

        DispatchQueue.main.async( execute:
            {
                self.blurImg.removeFromSuperview()
                self.indicator.removeFromSuperview()
        })
    }
}
Run Code Online (Sandbox Code Playgroud)