为 MBProgressHUD 创建启动和停止函数

Creating Start and Stop Functions for MBProgressHUD

我正在尝试创建两个函数。一个启动 progressHUD,一个停止 hud。我正在 UIViewController 的扩展中创建它。功能如下:

func startProgressHUD() {
    let spinningActivity = MBProgressHUD.showAdded(to: self.view, animated: true)
    spinningActivity.label.text = "Loading"
}

func stopProgressHUD() {
    DispatchQueue.main.async {
        MBProgressHUD.hide(for: self.view, animated: true)
    }
}

第一个函数在调用时工作正常 -> HUD 启动。 但是,当我调用 stop 函数时,HUD 永远不会停止。 根据描述,我在 stop 函数中调用的 hide 函数隐藏了最上面的 HUD看法。我在视图中只打开了一个 HUD,但 HUD 从未停止。

如果我使用:

func stopProgressHUD() {
    DispatchQueue.main.async {
        MBProgressHUD.hideAllHUDs(for: self.view, animated: true)
    }
}

我没问题,但是 hideAllHUDs 功能已弃用 -> 警告状态,'store references when using more than one HUD per view'.

如何让 HUD 停止?

全局声明MBProgressHUD,然后显示和隐藏它。肯定有用

ViewController 中将 spinningActivity 声明为全局变量。任何时候需要 HUD 时,您都可以 self.spinningActivity = MBProgressHUD.showAdded(to: self.view, animated: true)。当您不再需要它时,self.spinningActivity?.hide()