添加 Lottie 全局加载层并修复加载状态卡住问题

This commit is contained in:
2026-07-06 17:43:13 +08:00
parent d79d3003e3
commit 71ab38af8d
14 changed files with 281 additions and 75 deletions

View File

@ -9,9 +9,6 @@ import UIKit
/// ViewController UI UI
class BaseViewController: UIViewController {
private var loadingOverlay: UIView?
private var loadingIndicator: UIActivityIndicatorView?
// MARK: - Lifecycle
override func viewDidLoad() {
@ -47,36 +44,14 @@ class BaseViewController: UIViewController {
// MARK: - Loading
@MainActor
func showLoading() {
if loadingOverlay == nil {
let overlay = UIView()
overlay.backgroundColor = UIColor.black.withAlphaComponent(0.1)
let indicator = UIActivityIndicatorView(style: .large)
indicator.hidesWhenStopped = true
view.addSubview(overlay)
overlay.addSubview(indicator)
overlay.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
indicator.snp.makeConstraints { make in
make.center.equalToSuperview()
}
loadingOverlay = overlay
loadingIndicator = indicator
}
loadingOverlay?.isHidden = false
loadingIndicator?.startAnimating()
view.bringSubviewToFront(loadingOverlay!)
GlobalLoadingManager.shared.show()
}
@MainActor
func hideLoading() {
loadingIndicator?.stopAnimating()
loadingOverlay?.isHidden = true
GlobalLoadingManager.shared.hide()
}
// MARK: - Toast / Alert
@ -156,7 +131,7 @@ class BaseViewController: UIViewController {
}
@objc private func handleSessionDidExpireNotification() {
hideLoading()
GlobalLoadingManager.shared.hideAll()
onSessionDidExpire()
}
}