75 lines
2.3 KiB
Swift
75 lines
2.3 KiB
Swift
|
|
//
|
|||
|
|
// Hud.swift
|
|||
|
|
// Crush
|
|||
|
|
//
|
|||
|
|
// Created by Leon on 2025/7/13.
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
import Foundation
|
|||
|
|
import UIKit
|
|||
|
|
|
|||
|
|
/// ⚠️只在不确认View主体时使用(eg: IAPCore),其他情况请使用Hud.showIndicator() and view.hideToastActivity
|
|||
|
|
class Hud {
|
|||
|
|
static let shared = Hud()
|
|||
|
|
|
|||
|
|
static func showIndicator(_ blockUserTap: Bool? = true) {
|
|||
|
|
DispatchQueue.main.async {
|
|||
|
|
if let view = UIWindow.key {
|
|||
|
|
view.makeToastActivity(.center, blockUserInteraction: blockUserTap ?? true)
|
|||
|
|
} else if let view = UIWindow.getTopViewController()?.view {
|
|||
|
|
view.makeToastActivity(.center, blockUserInteraction: blockUserTap ?? true)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 显示加载指示器,可选择是否阻止用户交互
|
|||
|
|
/// - Parameter blockUserInteraction: 是否阻止用户与页面上其他元素的交互,默认为false
|
|||
|
|
// static func showIndicator(blockUserInteraction: Bool = true) {
|
|||
|
|
// DispatchQueue.main.async {
|
|||
|
|
// if let view = UIWindow.key {
|
|||
|
|
// view.makeToastActivity(.center, blockUserInteraction: blockUserInteraction)
|
|||
|
|
// } else if let view = UIWindow.getTopViewController()?.view {
|
|||
|
|
// view.makeToastActivity(.center, blockUserInteraction: blockUserInteraction)
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
static func hideIndicator() {
|
|||
|
|
DispatchQueue.main.async {
|
|||
|
|
if let view = UIWindow.key {
|
|||
|
|
view.hideToastActivity()
|
|||
|
|
} else if let view = UIWindow.getTopViewController()?.view {
|
|||
|
|
view.hideToastActivity()
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
static func toast(str: String?, completion: ((Bool)-> Void)? = nil) {
|
|||
|
|
DispatchQueue.main.async {
|
|||
|
|
guard let toast = str, let view = UIWindow.applicationKey else {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
view.makeToast(toast, completion: completion)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
static func hideToast(){
|
|||
|
|
DispatchQueue.main.async {
|
|||
|
|
guard let view = UIWindow.applicationKey else {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
view.hideToast()
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
static func comingsoon(){
|
|||
|
|
Hud.toast(str: "Comming soon...")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
required init() {
|
|||
|
|
//ToastManager.shared.duration = 1.0
|
|||
|
|
|
|||
|
|
ToastManager.shared.isQueueEnabled
|
|||
|
|
}
|
|||
|
|
}
|