我正在编写与地址簿同步的应用,并将自己更新为addressbook
。
当我调用同步方法或首次启动并且应用将所有addressbook
联系人复制到应用数据文件时,我想向用户显示MBProgressHUD
。
我不太了解这一点,我希望MBProgressHUD
出现在这种方法的调用上,并隐藏它的完成时间。
- (void)syncingAddressbookWithCoreDataFile
你能指导我如何以我想要的方式使用它吗?
我对所有dispatch
和队列的东西感到困惑,因为我在所有这些事情上都相当新手。
已更新
当任务执行时,如何使指标的progress
填写,我知道HUD中有progress
属性(我正在使用MBProgressHUDModeDeterminate
),但是当我的方法执行时我增加了它的价值它没有改变..我需要调用类似redisplay的东西吗?
答案 0 :(得分:3)
使用此代码,您可以使用最简单的方法来执行您想要的操作。它没有阻止UI。
MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView: self.view];
[self.view addSubview: hud];
hud.labelText = @"Please wait...";
[hud showAnimated:YES whileExecutingBlock:^{
[self syncingAddressbookWithCoreDataFile];
} completionBlock:^{
// Put here code like reload table, refresh UI (...)
}];
但警告,因为whileExecutingBlock
使用线程,你必须在主线程上进行所有UI更改。
答案 1 :(得分:0)
- (void)syncingAddressbookWithCoreDataFile {
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
//Your code goes here
[MBProgressHUD hideHUDForView:self.view animated:YES];
}
答案 2 :(得分:0)
将此代码添加到您想要显示进度的地方:
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
现在将此代码添加到您想要隐藏进度
的位置 [MBProgressHUD hideHUDForView:self.view animated:YES];
在您要显示进度的位置设置视图:showHUDAddedTo && hideHUDForView