ios swift UIActivityIndicatorView 菊花 加载中...

请添加图片描述
请添加图片描述

1.自己写的框架类,顶部截图是使用举例

1.1 框架类:LoadingView

//
//  LoadingView.swift
//  Fei
//
//  Created by mcvivi on 2022/3/31.
//

import UIKit

extension UIWindow
{
    
    
    class var window:UIWindow{
    
    
        let window = UIApplication.shared.windows.last!
        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.loadingView)
        shared.label.text = "加载中..."
        shared.activity.startAnimating()
        shared.loadingView.alpha = 0
        UIView.animate(withDuration: 0.3) {
    
    
            shared.loadingView.alpha = 1
        }
    }
    
    class func complete(){
    
    
        shared.label.text = "完成"
        shared.activity.stopAnimating()
        DispatchQueue.main.asyncAfter(deadline: .now()+1, execute:
                                        {
    
    
                                            UIView.animate(withDuration: 0.3) {
    
    
                                                shared.loadingView.alpha = 0
                                            } completion: {
    
     (bool) in
                                                printXY(bool, obj: self, line: #line)
                                                shared.loadingView.removeFromSuperview()
                                            }
                                        })
    }
    
}


class LoadingView: NSObject {
    
    
    fileprivate static let shared:LoadingView = LoadingView()
    
    fileprivate lazy var loadingView:UIView = {
    
    
       let lView = UIView()
        lView.frame.size = CGSize(width: 100, height: 100)
        lView.layer.cornerRadius = 10
        lView.layer.masksToBounds = true
        lView.backgroundColor = .gray
        lView.addSubview(imageView)
        lView.addSubview(activity)
        lView.addSubview(label)
        return lView
    }()
    
  
    
    fileprivate lazy var label:UILabel = {
    
    
        let label = UILabel(frame: CGRect(x: 0, y: 70, width: 100, height: 20))
        label.textAlignment = .center
        label.textColor = .white
        label.text = "加载中..."
        return label
    }()
    
    fileprivate lazy var activity:UIActivityIndicatorView = {
    
    
        let activity = UIActivityIndicatorView(style: .whiteLarge)
        activity.frame = CGRect(x: 25, y: 10, width: 50, height: 50)
        activity.backgroundColor = .gray
        activity.startAnimating()
        return activity
    }()
    
    fileprivate lazy var imageView:UIImageView = {
    
    
        let imageView = UIImageView(image: UIImage(named: "complete"))
        imageView.frame = CGRect(x: 25, y: 10, width: 50, height: 50)
        return imageView
    }()
    
}

1.2 使用:LoadingVC.swift

  • 显示
 LoadingView.show()
  • 隐藏
  LoadingView.complete()
  • LoadingVC.swift
//
//  LoadingVC.swift
//  Fe
//
//  Created by macvi on 2022/3/31.
//

import UIKit

class LoadingVC: UIViewController {
    
    
    
    lazy var btnShow:UIButton = {
    
    
        let btn = UIButton(frame: CGRect(x: 50, y: 50, width: 140, height: 40))
        btn.setTitle("show", for: .normal)
        btn.backgroundColor = .gray
        btn.addTarget(self, action: #selector(btnShowClick), for: .touchUpInside)
        return btn
    }()
    
    @objc func btnShowClick(){
    
    
        LoadingView.show()
    }
    
    lazy var btnComplete:UIButton = {
    
    
        let btn = UIButton(frame: CGRect(x: 100, y: 150, width: 140, height: 40))
        btn.setTitle("complete", for: .normal)
        btn.backgroundColor = .gray
        btn.addTarget(self, action: #selector(btnCompleteClick), for: .touchUpInside)
        return btn
    }()
    
    @objc func btnCompleteClick(){
    
    
        LoadingView.complete()
    }
    
    override func viewDidLoad() {
    
    
        super.viewDidLoad()
        view.backgroundColor = .white
        view.addSubview(btnShow)
        view.addSubview(btnComplete)
    }
    
}

2.storyboard中展示

点击开始,出现并且有旋转动画

点击停止,隐藏

请添加图片描述

3.参考博客

Swift 菊花、UIPageControl和UIProgressView

猜你喜欢

转载自blog.csdn.net/baidu_40537062/article/details/123874006