MBProgressHUD和UITableView

Nic*_*ara 7 hud uitableview ios mbprogresshud

我在填充TableView时显示HUD,但它似乎显示在TableView后面(tableview分隔符打破了hud).

在此输入图像描述

这是TableViewController中的代码:

- (void)viewDidLoad {
[super viewDidLoad];

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeText;
hud.labelText = @"Loading";

// Populate the table
[self getTableData];

self.tableView.rowHeight = 90;
}
Run Code Online (Sandbox Code Playgroud)

它只在TableViews中执行此操作.

Mik*_*ike 12

这里的问题是你在视图加载时添加HUD,这可能是在你的tableView显示之前,因此tableView被创建并显示为覆盖HUD.将该代码移动到viewDidAppear中,您的问题就会消失:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.mode = MBProgressHUDModeText;
    hud.labelText = @"Loading";
}
Run Code Online (Sandbox Code Playgroud)


qzh*_*ang 12

如果要实现,请使用self.navigationController.view而不是self.viewviewDidLoad


小智 10

包括这个:

#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)

您可以使用layer.zPosition来排序对象/视图的可见性.

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeText;
hud.labelText = @"Loading";
hud.layer.zPosition = 2;
self.tableView.layer.zPosition = 1;
Run Code Online (Sandbox Code Playgroud)

zPosition值越高,显示的优先级越高.