从零开始读MBProgressHUD(一)

MBProgressHUD GitHub

 README.mdown翻译

MBProgressHUD

   MBProgressHUD是一个iOS插件类,当后台进程工作时可以在屏幕上展示一个包含相关信息(indicator or label..)的透明指示层。它可以用来替代未被官方文档说明的iOS私有方法UIKit UIProgressHUD,并且增加了一些额外的元素。

Requirements(要求)

    MBProgressHUD支持各个iOS版本,并且兼容ARC以及非ARC项目。其依赖于以下Apple frameworks:

  • Foundation.framework
  • UIKit.framework
  • CoreGraphics.framework

   将你的开发环境更新到最新版本来使用MBProgressHUD,毕竟虽然在旧的Xcode版本或许可以工作,但不能确定一定毫无问题。

Adding MBProgressHUD to your project(添加MBProgressHUD到项目中,翻译略)

Usage(用法)

   不要在主线程中处理耗时操作,以保证UI的流畅性(iOS中UI更新是在main thread中完成的,所以不要阻塞主线程)。推荐方法是在主线程中设置MBProgressHUD,开一个新线程来处理任务。

[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    // Do something...
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

   如果你想配置HUD,可以参照showHUDAddedTo:animated:.

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeAnnularDeterminate;
hud.labelText = @"Loading";
[self doSomethingInBackgroundWithProgressCallback:^(float progress) {
    hud.progress = progress;
} completionCallback:^{
    [hud hide:YES];
}];
 

   UI更新必须在主线程中完成,一些MBProgressHUD的设置方法已经是线程安全的并能被后台进程调用。包括:setMode:, setCustomView:, setLabelText:, setLabelFont:, setDetailsLabelText:, setDetailsLabelFont: 以及 setProgress:.

如果你想在主线程中执行耗时操作,请延迟一段时间执行,以便UIKit在主线程阻塞之前有时间来更新UI(比如绘制HUD)。

[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    // Do something...
    [MBProgressHUD hideHUDForView:self.view animated:YES];
});

   你必须意识到在上面的block完成前,任何HUD的更新都不会显示。
   更多的示例参见demo,包括在异步操作中使用MBProgressHUD,例如NSURLConnection。MBProgressHUD.h中提供了大量的API说明文档。

************************************************

原创文章,转载请注明出处:http://blog.csdn.net/qq329735967

任何疑问欢迎Email至329735967@qq.com

************************************************




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值