分类: IOS2012-10-30 11:19 12047人阅读 评论(2)  举报

和gitHub上的Demo其实差不多,就是小整理了下,当备忘,想做复杂的效果可以参考MBProgressHUD在gitHub上的DEMO,写得也很清楚明了。

先下载MBProgressHUD.h和.m文件,拖入工程。地址:MBProgressHUD

以下是代码:(先在.h文件里定义 MBProgressHUD *HUD;)

  1. //方式1.直接在View上show
  2. HUD = [[MBProgressHUD showHUDAddedTo:self.view animated:YES] retain];
  3. HUD.delegate = self;
  4. //常用的设置
  5. //小矩形的背景色
  6. HUD.color = [UIColor clearColor];//这儿表示无背景
  7. //显示的文字
  8. HUD.labelText = @"Test";
  9. //细节文字
  10. HUD.detailsLabelText = @"Test detail";
  11. //是否有庶罩
  12. HUD.dimBackground = YES;
  13. [HUD hide:YES afterDelay:2];
  14. //只显示文字
  15. MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  16. hud.mode = MBProgressHUDModeText;
  17. hud.labelText = @"Some message...";
  18. hud.margin = 10.f;
  19. hud.yOffset = 150.f;
  20. hud.removeFromSuperViewOnHide = YES;
  21. [hud hide:YES afterDelay:3];
  22. //方式2.initWithView
  23. //use block
  24. HUD = [[MBProgressHUD alloc] initWithView:self.view];
  25. [self.view addSubview:HUD];
  26. HUD.labelText = @"Test";
  27. [HUD showAnimated:YES whileExecutingBlock:^{
  28. NSLog(@"%@",@"do somethings....");
  29. [self doTask];
  30. } completionBlock:^{
  31. [HUD removeFromSuperview];
  32. [HUD release];
  33. }];
  34. //圆形进度条
  35. HUD = [[MBProgressHUD alloc] initWithView:self.view];
  36. [self.view addSubview:HUD];
  37. HUD.mode = MBProgressHUDModeAnnularDeterminate;
  38. HUD.delegate = self;
  39. HUD.labelText = @"Loading";
  40. [HUD showWhileExecuting:@selector(myProgressTask) onTarget:self withObject:nil animated:YES];
  41. //自定义view
  42. HUD = [[MBProgressHUD alloc] initWithView:self.view];
  43. HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]] autorelease];
  44. // Set custom view mode
  45. HUD.mode = MBProgressHUDModeCustomView;
  46. HUD.delegate = self;
  47. HUD.labelText = @"Completed";
  48. [HUD show:YES];
  49. [HUD hide:YES afterDelay:3];

代理方法:

  1. #pragma mark -
  2. #pragma mark HUD的代理方法,关闭HUD时执行
  3. -(void)hudWasHidden:(MBProgressHUD *)hud
  4. {
  5. [hud removeFromSuperview];
  6. [hud release];
  7. hud = nil;
  8. }

二个task

  1. -(void) doTask{
  2. //你要进行的一些逻辑操作
  3. sleep(2);
  4. }
  5. -(void) myProgressTask{
  6. float progress = 0.0f;
  7. while (progress < 1.0f) {
  8. progress += 0.01f;
  9. HUD.progress = progress;
  10. usleep(50000);
  11. }
  12. }
05-08 15:33