85 lines
2.8 KiB
Swift
85 lines
2.8 KiB
Swift
//
|
|
// MPHUD.swift
|
|
// MusicPlayer
|
|
//
|
|
// Created by Mr.Zhou on 2024/4/11.
|
|
//
|
|
|
|
import UIKit
|
|
import SVProgressHUD
|
|
///二次封装hud
|
|
class MPHUD: NSObject {
|
|
//HUD输出状态
|
|
enum status {
|
|
///成功
|
|
case success
|
|
///失败
|
|
case error
|
|
///只显示文字
|
|
case onlyText
|
|
///过程
|
|
case progress
|
|
///加载数据
|
|
case loading
|
|
}
|
|
///文本HUD
|
|
static func text(_ text:String?,delay:TimeInterval,completion:(() -> Void)?){
|
|
showWithStatus(hudStatus: .onlyText, text: text, delay: delay, completion: completion)
|
|
}
|
|
|
|
///等待HUD
|
|
static func progress(_ text:String?,delay:TimeInterval,completion:(() -> Void)?){
|
|
showWithStatus(hudStatus: .progress, text: text, delay: delay, completion: completion)
|
|
}
|
|
///数据HUD
|
|
static func loading(_ delay:TimeInterval,completion:(() -> Void)?){
|
|
showWithStatus(hudStatus: .loading, text: nil, delay: delay, completion: completion)
|
|
}
|
|
///成功HUD
|
|
static func success(_ text:String?,delay:TimeInterval,completion:(() -> Void)?){
|
|
showWithStatus(hudStatus: .success, text: text, delay: delay, completion: completion)
|
|
}
|
|
///错误HUD
|
|
static func error(_ text:String?,delay:TimeInterval,completion:(() -> Void)?){
|
|
showWithStatus(hudStatus: .error, text: text, delay: delay, completion: completion)
|
|
}
|
|
//立刻隐藏当前HUD
|
|
static func hideNow() {
|
|
SVProgressHUD.dismiss()
|
|
}
|
|
|
|
/// 展示HUD
|
|
/// - Parameters:
|
|
/// - status: HUD状态
|
|
/// - text: 显示文本
|
|
/// - delay: 显示时常
|
|
static func showWithStatus(hudStatus status: status, text: String?, delay: TimeInterval ,completion:(() -> Void)?) {
|
|
SVProgressHUD.setDefaultStyle(.light)
|
|
SVProgressHUD.setDefaultMaskType(.clear)
|
|
SVProgressHUD.setBackgroundColor(.white)
|
|
SVProgressHUD.setOffsetFromCenter(.init(horizontal: 0, vertical: 0))
|
|
switch status {
|
|
case .success:
|
|
SVProgressHUD.showSuccess(withStatus: text)
|
|
SVProgressHUD.setMinimumSize(CGSize(width: 100 * width, height: 80 * width))
|
|
case .error:
|
|
SVProgressHUD.showError(withStatus: text)
|
|
case .onlyText:
|
|
SVProgressHUD.setOffsetFromCenter(.init(horizontal: 0, vertical: (screen_Height / 2) - 85 * width))
|
|
SVProgressHUD.setMinimumSize(CGSize(width: 100 * width, height: 40 * width))
|
|
SVProgressHUD.show(UIImage(), status: text)
|
|
case .loading:
|
|
SVProgressHUD.setBackgroundColor(.white)
|
|
SVProgressHUD.show()
|
|
default:
|
|
SVProgressHUD.show(withStatus: text)
|
|
}
|
|
SVProgressHUD.dismiss(withDelay: delay) {
|
|
guard let completion = completion else{
|
|
return
|
|
}
|
|
completion()
|
|
}
|
|
}
|
|
}
|