我正在加载MBProgressHUD
时正在显示UITableView
动画。
我基本上在viewDidLoad
中创建 HUD ,然后触发包含所有UITableView
代码的选择器。
self.HUD = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
self.HUD.mode = MBProgressHUDAnimationFade;
self.HUD.labelText = @"Finding Friends";
[self performSelector:@selector(myTask) withObject:nil afterDelay:0.001];
我这样做是因为我的表视图阻塞了主线程。所以基本上这允许我在表视图开始之前创建HUD并阻止主线程。这样,在整个表视图设置过程中,HUD实际上是可见的。
我从MBProgressHUD的创建者在这个stackoverflow帖子中得到了上面的代码:Run MBProgressHUD in another thread?
但是,现在我希望能够显示使用 HUD 设置的表格视图的实际进度,但我对如何执行此操作感到困惑。现在我只是显示一个“旋转”动画,但它实际上并没有显示真正的进展。它只是旋转。
我想使用这样的动画:http://dl.dropboxusercontent.com/u/378729/MBProgressHUD/4.png
然后在表视图代码运行时填充它。
我愿意接受任何建议并感谢您的帮助。
答案 0 :(得分:0)
试试这个:
在viewDidLoad方法中添加此代码段。执行块时设置tableView的委托,以便可以在表视图上加载数据
MBProgressHUD *progressView = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:progressView];
progressView.labelText = kLoadingMessage;
[progressView showAnimated:YES whileExecutingBlock:^
{
self.tableView.datasource = self;
self.tableView.delegate = self;
}
completionBlock:^
{
[progressView removeFromSuperview];
}];