和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); } }