和gitHub上的Demo其实差不多,就是小整理了下,当备忘,想做复杂的效果可以参考MBProgressHUD在gitHub上的DEMO,写得也很清楚明了。
先下载MBProgressHUD.h和.m文件,拖入工程。地址:MBProgressHUD
以下是代码:(先在.h文件里定义 MBProgressHUD *HUD;)
- //方式1.直接在View上show
- HUD = [[MBProgressHUD showHUDAddedTo:self.view animated:YES] retain];
- HUD.delegate = self;
- //常用的设置
- //小矩形的背景色
- HUD.color = [UIColor clearColor];//这儿表示无背景
- //显示的文字
- HUD.labelText = @"Test";
- //细节文字
- HUD.detailsLabelText = @"Test detail";
- //是否有庶罩
- HUD.dimBackground = YES;
- [HUD hide:YES afterDelay:2];
- //只显示文字
- MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
- hud.mode = MBProgressHUDModeText;
- hud.labelText = @"Some message...";
- hud.margin = 10.f;
- hud.yOffset = 150.f;
- hud.removeFromSuperViewOnHide = YES;
- [hud hide:YES afterDelay:3];
- //方式2.initWithView
- //use block
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- HUD.labelText = @"Test";
- [HUD showAnimated:YES whileExecutingBlock:^{
- NSLog(@"%@",@"do somethings....");
- [self doTask];
- } completionBlock:^{
- [HUD removeFromSuperview];
- [HUD release];
- }];
- //圆形进度条
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- HUD.mode = MBProgressHUDModeAnnularDeterminate;
- HUD.delegate = self;
- HUD.labelText = @"Loading";
- [HUD showWhileExecuting:@selector(myProgressTask) onTarget:self withObject:nil animated:YES];
- //自定义view
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]] autorelease];
- // Set custom view mode
- HUD.mode = MBProgressHUDModeCustomView;
- HUD.delegate = self;
- HUD.labelText = @"Completed";
- [HUD show:YES];
- [HUD hide:YES afterDelay:3];
代理方法:
- #pragma mark -
- #pragma mark HUD的代理方法,关闭HUD时执行
- -(void)hudWasHidden:(MBProgressHUD *)hud
- {
- [hud removeFromSuperview];
- [hud release];
- hud = nil;
- }
二个task
- -(void) doTask{
- //你要进行的一些逻辑操作
- sleep(2);
- }
- -(void) myProgressTask{
- float progress = 0.0f;
- while (progress < 1.0f) {
- progress += 0.01f;
- HUD.progress = progress;
- usleep(50000);
- }
- }