IT虾米网

MBProgressHUD的基本使用

leader 2018年06月24日 手机开发 1142 0
和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);   
}   
   
  }  

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!