2014-08-29 3 views
7

Я показываю HUD при заполнении TableView, но, похоже, он отображается за TableView (разделитель табуляции, разбивающий хад).MBProgressHUD и UITableView

enter image description here

Вот код в 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; 
} 

Он делает это только с TableViews.

ответ

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"; 
} 
+1

Взгляните на этот ответ: http://stackoverflow.com/a/28293970/3045072 – user3045072

12

Использование self.navigationController.view вместо self.view, если вы хотите реализовать в viewDidLoad

9

Включите эту опцию:

#import <QuartzCore/QuartzCore.h> 

Вы можете использовать слой .zPosition, чтобы заказать видимость ваших объектов/представлений.

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

Высшее значение zPosition, большее приоритетное значение на дисплее.

+0

это должно быть принято отвечать! и демонстрация «MBProgressHUD» использует это тоже – armnotstrong

+0

спасибо @armnotstrong – user3045072

0
Even in ViewDidLoad also we can handle it like this:: 
    - (void)viewDidLoad { 
[super viewDidLoad];  
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    hud.labelText = @"Loading.."; 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ 
    [self contactsFromAddressBook]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [MBProgressHUD hideHUDForView:self.view animated:YES]; 
     [self.tableView reloadData]; 

    }); 
    }); 

}

Смежные вопросы