【问题标题】:MBProgressHUD not showMBProgressHUD 不显示
【发布时间】:2017-06-21 19:08:57
【问题描述】:

当我这样写时,它按预期工作:

override func viewDidLoad() {
   super.viewDidLoad()
   MBProgressHUD.showAdded(to: navigationController!.view, animated: true)
}

但是,当我将它放在 DispatchQueue.main 块中时,hud 不显示:

override func viewDidLoad() {
   super.viewDidLoad()

   DispatchQueue.main.async {
      MBProgressHUD.showAdded(to: self.navigationController!.view, animated: true)
   }
}

我调试视图层次结构,有一个布局问题:

“MBProgressHUD 的位置和大小不明确”

navigationController 是fatherViewController 的childViewController,容器视图由fatherViewController 的视图中的auto layout 设置。

这是导致问题的原因吗?

【问题讨论】:

  • 你可以写 self.view 而不是 self.navigationController!.view 或者你有你的 UINavigationCotroller 添加到情节提要中,如果你有,而不是将其作为 initialViewController 连接为 RootViewController 而不是尝试添加 self.navigationController!.view跨度>

标签: ios dispatch mbprogresshud


【解决方案1】:

我已经构建了一个演示来测试它,但它没有发生。所以我重新检查了我的代码,发现我在DispatchQueue.main.async 中做了一些工作,这会阻塞 UI 并导致问题。

【讨论】:

    【解决方案2】:

    我专门为您进行了测试,以下代码对我有用:

    override func viewDidLoad() {
       super.viewDidLoad()
    
       DispatchQueue.main.async {
          MBProgressHUD.showAdded(to: self.navigationController!.view, animated: true)
       }
    }
    

    所以问题出在其他地方

    【讨论】:

    • 我已经更新了这个问题。 navigationController 是 childViewController,它的容器视图由自动布局设置。我认为这可能会导致问题。
    【解决方案3】:

    viewDidLoad未计算根 UIView 几何体(未调用viewDidLayoutSubviews)。我建议将您的代码放入viewDidAppear。 此外,无需在 DispatchAsync.main 内显式调用它,正如其他人提到的,除非您想从后台线程调用它,否则它会在 UI 线程中调用。

    【讨论】:

      【解决方案4】:

      实际上 MBProgressHUD 在 UI 主线程上工作,而您正试图在后台线程中调用它。

      试试这个:-

       override func viewDidLoad() {
             super.viewDidLoad()
             DispatchQueue.main.async {  start()
       }
      }
      func start(){
      
      
        MBProgressHUD.showAdded(to: self.navigationController!.view, animated: true)}
      

      【讨论】:

      • 他将它分派到主线程而不是后台。
      猜你喜欢
      • 2011-07-28
      • 2012-04-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      相关资源
      最近更新 更多