MBProgressHUD and UITableView section header

在一个 UITableView 上添加一个 MBProgressHUD,很有可能会遇到这种情况,HUD 被 TableView 的 section header 挡住了:

同样的,如果你用了 UITableViewController,则 self.view 就是一个 UITableView,则当向 self.view 添加一个 HUD 为 subview 时,就会遇到这个问题。

在 github 上的 issue:
https://github.com/jdg/MBProgressHUD/issues/242

在 stackoverflow 上的讨论:
http://stackoverflow.com/questions/7199700/uitableview-headings-shown-on-top-of-mbprogresshud

可以根据情况考虑,选择下面的方法:

  1. 不用 UITableViewController,改用 UIViewController + TableView,并把 hud 添加到 self.view 上。
  2. 把 hud 添加到 self.navigationController.view 上,这样会带来一个副作用,hud 显示的时候不能点击返回按钮,不推荐。
  3. 调整 hud 的 z 值,hud.layer.zPosition = MAXFLOAT; (z 值越大越在上方),推荐采用。