MBProgessHUD显示方法执行

时间:2014-07-22 12:25:27

标签: ios xcode5 mbprogresshud

我正在编写与地址簿同步的应用,并将自己更新为addressbook

当我调用同步方法或首次启动并且应用将所有addressbook联系人复制到应用数据文件时,我想向用户显示MBProgressHUD

我不太了解这一点,我希望MBProgressHUD出现在这种方法的调用上,并隐藏它的完成时间。

- (void)syncingAddressbookWithCoreDataFile

你能指导我如何以我想要的方式使用它吗?

我对所有dispatch和队列的东西感到困惑,因为我在所有这些事情上都相当新手。

已更新

当任务执行时,如何使指标的progress填写,我知道HUD中有progress属性(我正在使用MBProgressHUDModeDeterminate),但是当我的方法执行时我增加了它的价值它没有改变..我需要调用类似redisplay的东西吗?

3 个答案:

答案 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