IOS第三方之MBProgressHUD

//

//  ViewController.m

//  MBProgressHUD

//

//  Created by City--Online on 15/6/15.

//  Copyright (c) 2015年 City--Online. All rights reserved.

//



#import "ViewController.h"

#import "MBProgressHUD.h"



@interface ViewController ()<MBProgressHUDDelegate,NSURLConnectionDataDelegate>

@property(nonatomic,strong) MBProgressHUD *hud;

@property(nonatomic,assign) long long expectedLength;

@property(nonatomic,assign) long long currentLength;

@end



@implementation ViewController



- (void)viewDidLoad {

    [super viewDidLoad];

    //普通提示框

    UIButton *simpleBtn=[UIButton buttonWithType:UIButtonTypeSystem];

    [simpleBtn setTitle:@"普通" forState:UIControlStateNormal];

    [simpleBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

    simpleBtn.frame=CGRectMake(20, 70, 100, 100);

    simpleBtn.backgroundColor=[UIColor redColor];

    simpleBtn.tag=10001;

    [self.view addSubview:simpleBtn];

    

    //显示进度

    UIButton *progressBtn=[UIButton buttonWithType:UIButtonTypeSystem];

    [progressBtn setTitle:@"进度" forState:UIControlStateNormal];

    [progressBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

    progressBtn.frame=CGRectMake(130, 70, 100, 100);

    progressBtn.backgroundColor=[UIColor redColor];

    progressBtn.tag=10002;

    [self.view addSubview:progressBtn];

    

    //自定义视图

    UIButton *customBtn=[UIButton buttonWithType:UIButtonTypeSystem];

    [customBtn setTitle:@"自定义" forState:UIControlStateNormal];

    [customBtn addTarget:self action:@selector(customClick:) forControlEvents:UIControlEventTouchUpInside];

    customBtn.frame=CGRectMake(20, 180, 100, 100);

    customBtn.backgroundColor=[UIColor redColor];

    customBtn.tag=10003;

    [self.view addSubview:customBtn];

    //Window视图

    UIButton *windowBtn=[UIButton buttonWithType:UIButtonTypeSystem];

    [windowBtn setTitle:@"Window" forState:UIControlStateNormal];

    [windowBtn addTarget:self action:@selector(windowClick:) forControlEvents:UIControlEventTouchUpInside];

    windowBtn.frame=CGRectMake(130, 180, 100, 100);

    windowBtn.backgroundColor=[UIColor redColor];

    windowBtn.tag=10004;

    [self.view addSubview:windowBtn];

    

    //多提示框

    UIButton *mixBtn=[UIButton buttonWithType:UIButtonTypeSystem];

    [mixBtn setTitle:@"多提示框" forState:UIControlStateNormal];

    [mixBtn addTarget:self action:@selector(mixClick:) forControlEvents:UIControlEventTouchUpInside];

    mixBtn.frame=CGRectMake(20, 290, 100, 100);

    mixBtn.backgroundColor=[UIColor redColor];

    mixBtn.tag=10004;

    [self.view addSubview:mixBtn];

    

    //多提示框

    UIButton *connectionBtn=[UIButton buttonWithType:UIButtonTypeSystem];

    [connectionBtn setTitle:@"Connection" forState:UIControlStateNormal];

    [connectionBtn addTarget:self action:@selector(connectionClick:) forControlEvents:UIControlEventTouchUpInside];

    connectionBtn.frame=CGRectMake(130, 290, 100, 100);

    connectionBtn.backgroundColor=[UIColor redColor];

    connectionBtn.tag=10004;

    [self.view addSubview:connectionBtn];





}

//普通

-(void)btnClick:(id)sender

{

    UIButton *btn=(UIButton *)sender;

    

    _hud=[[MBProgressHUD alloc]initWithView:self.view];

    _hud.delegate=self;

    _hud.labelText=@"Loading";

    _hud.detailsLabelText=@"updating data";

    _hud.square=YES;

    //默认

    _hud.mode=MBProgressHUDModeIndeterminate;

    if (btn.tag==10002) {

        _hud.mode=MBProgressHUDModeDeterminateHorizontalBar;

    }

    [self.view addSubview:_hud];

    

    [_hud showAnimated:YES whileExecutingBlock:^{

        if (btn.tag==10001) {

             sleep(3);

        }

        else if(btn.tag==10002)

        {

            [self myProgressTask];

        }

       

    } completionBlock:^{

        [_hud removeFromSuperview];

    }];

   

}

//自定义视图

-(void)customClick:(id)sender

{

    _hud = [[MBProgressHUD alloc] initWithView:self.view];

    [self.view addSubview:_hud];

    // Make the customViews 37 by 37 pixels for best results (those are the bounds of the build-in progress indicators)

    _hud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]];

    

    // Set custom view mode

    _hud.mode = MBProgressHUDModeCustomView;

    

    _hud.delegate = self;

    _hud.labelText=@"Loading";

    _hud.detailsLabelText=@"updating data";

    _hud.square=YES;

    

    [_hud show:YES];

    [_hud hide:YES afterDelay:3];



}





//window视图

-(void)windowClick:(id)sender

{

    _hud=[[MBProgressHUD alloc]initWithWindow:self.view.window];

    [self.view.window addSubview:_hud];

    _hud.delegate=self;

    _hud.labelText=@"Loading";

    [_hud showWhileExecuting:@selector(task) onTarget:self withObject:nil animated:YES];

}

//多提示框

-(void)mixClick:(id)sender

{

    _hud = [[MBProgressHUD alloc] initWithView:self.view];

    [self.view addSubview:_hud];

    

    _hud.delegate = self;

    _hud.labelText = @"Connecting";

//    _hud.minSize = CGSizeMake(135.f, 135.f);

    

    [_hud showWhileExecuting:@selector(mixedTask) onTarget:self withObject:nil animated:YES];



}

-(void)connectionClick:(id)sender

{

    NSURL *url=[NSURL URLWithString:@"http://a1408.g.akamai.net/5/1408/1388/2005110403/1a1a1ad948be278cff2d96046ad90768d848b41947aa1986/sample_iPod.m4v.zip"];

    NSURLRequest *request=[NSURLRequest requestWithURL:url];

    NSURLConnection *connection=[[NSURLConnection alloc]initWithRequest:request delegate:self];

    [connection start];

    _hud=[MBProgressHUD showHUDAddedTo:self.view animated:YES];

    _hud.delegate=self;

     _hud.mode=MBProgressHUDModeDeterminate;

    

}



-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{

    

    _expectedLength=MAX(response.expectedContentLength, 1);

    _currentLength=0;

   

    

}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

    _currentLength+=[data length];

    _hud.progress=_currentLength/(float)_expectedLength;

    

}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

    _hud.customView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]];

    _hud.mode=MBProgressHUDModeCustomView;

    [_hud hide:YES afterDelay:2];

}

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

{

    [_hud hide:YES];

}

//显示进度

- (void)myProgressTask {

    // This just increases the progress indicator in a loop

    float progress = 0.0f;

    while (progress < 1.0f) {

        progress += 0.01f;

        _hud.progress = progress;

        usleep(50000);

    }

    



}

-(void)task

{

    sleep(3);

}

-(void)mixedTask

{

    _hud.mode=MBProgressHUDModeIndeterminate;

    _hud.labelText=@"Progressing";

    float progress=0.0f;

    while (progress<1.0f) {

        progress+=0.1f;

        _hud.progress=progress;

        usleep(5000);

    }

    // Back to indeterminate mode

    _hud.mode = MBProgressHUDModeIndeterminate;

    _hud.labelText = @"Cleaning up";

    sleep(2);

    // UIImageView is a UIKit class, we have to initialize it on the main thread

    __block UIImageView *imageView;

    dispatch_sync(dispatch_get_main_queue(), ^{

        UIImage *image = [UIImage imageNamed:@"37x-Checkmark.png"];

        imageView = [[UIImageView alloc] initWithImage:image];

    });

    _hud.customView =imageView;

    _hud.mode = MBProgressHUDModeCustomView;

    _hud.labelText = @"Completed";

    sleep(2);

}

- (void)hudWasHidden:(MBProgressHUD *)hud {

    // Remove HUD from screen when the HUD was hidded

    [_hud removeFromSuperview];

    _hud=nil;

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end

IOS第三方之MBProgressHUDIOS第三方之MBProgressHUDIOS第三方之MBProgressHUD

IOS第三方之MBProgressHUDIOS第三方之MBProgressHUDIOS第三方之MBProgressHUD

你可能感兴趣的:(progress)