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(, , , ); simpleBtn.backgroundColor=[UIColor redColor]; simpleBtn.tag=; [self.view addSubview:simpleBtn]; //显示进度 UIButton *progressBtn=[UIButton buttonWithType:UIButtonTypeSystem]; [progressBtn setTitle:@"进度" forState:UIControlStateNormal]; [progressBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; progressBtn.frame=CGRectMake(, , , ); progressBtn.backgroundColor=[UIColor redColor]; progressBtn.tag=; [self.view addSubview:progressBtn]; //自定义视图 UIButton *customBtn=[UIButton buttonWithType:UIButtonTypeSystem]; [customBtn setTitle:@"自定义" forState:UIControlStateNormal]; [customBtn addTarget:self action:@selector(customClick:) forControlEvents:UIControlEventTouchUpInside]; customBtn.frame=CGRectMake(, , , ); customBtn.backgroundColor=[UIColor redColor]; customBtn.tag=; [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(, , , ); windowBtn.backgroundColor=[UIColor redColor]; windowBtn.tag=; [self.view addSubview:windowBtn]; //多提示框 UIButton *mixBtn=[UIButton buttonWithType:UIButtonTypeSystem]; [mixBtn setTitle:@"多提示框" forState:UIControlStateNormal]; [mixBtn addTarget:self action:@selector(mixClick:) forControlEvents:UIControlEventTouchUpInside]; mixBtn.frame=CGRectMake(, , , ); mixBtn.backgroundColor=[UIColor redColor]; mixBtn.tag=; [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(, , , ); connectionBtn.backgroundColor=[UIColor redColor]; connectionBtn.tag=; [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; ) { _hud.mode=MBProgressHUDModeDeterminateHorizontalBar; } [self.view addSubview:_hud]; [_hud showAnimated:YES whileExecutingBlock:^{ ) { sleep(); } ) { [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:]; } //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, ); _currentLength=; } -(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:]; } -(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(); } } -(void)task { sleep(); } -(void)mixedTask { _hud.mode=MBProgressHUDModeIndeterminate; _hud.labelText=@"Progressing"; float progress=0.0f; while (progress<1.0f) { progress+=0.1f; _hud.progress=progress; usleep(); } // Back to indeterminate mode _hud.mode = MBProgressHUDModeIndeterminate; _hud.labelText = @"Cleaning up"; sleep(); // 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(); } - (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第三方之MBProgressHUD的更多相关文章
- iOS 第三方框架-MBProgressHUD
MBProgressHUD提示框官网地址:https://github.com/jdg/MBProgressHUD 官网里已经提供了足够多的例子供我们使用,但在实现开发中,我们用到的只是其中的一小部分 ...
- iOS 第三方库、插件、知名博客总结
iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...
- 超全!整理常用的iOS第三方资源(转)
超全!整理常用的iOS第三方资源 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地 ...
- iOS第三方库管理工具
作者:彷徨iOS 原文地址1:http://iostree.sinaapp.com/?p=78 原文地址2:http://blog.csdn.net/wzzvictory/article/detail ...
- fir.im Weekly - 热门 iOS 第三方库大盘点
本期 fir.im Weekly 收集的热度资源,大部分关于Android.iOS 开发工具.源码和脑洞大开的 UI 动画,希望给你带来更多的工作创意与灵感. 盘点国内程序员不常用的热门iOS第三方库 ...
- ios 第三方登录
ios 第三方登录通常的做法是, 1.登录后,获得第三方的uid,调用服务器登录接口,如服务器返回无此用户,转2,有此用户,转3. 2.服务器返回无此用户,需完善用户资料,如果完成,则在服务器创建与第 ...
- 你一定能用的上的iOS第三方库
点国内程序员不常用的热门iOS第三方库:看完,还敢自称"精通iOS开发"吗? 综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型, ...
- iOS第三方库
热门iOS第三方库:看完,还敢自称”精通iOS开发”吗? 综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? h ...
- IOS第三方之SVProgressHUD
这个第三方和MBProgressHUD差不多,也挺简单的. // // ViewController.m // ProgressHUD // // Created by City--Online on ...
随机推荐
- 笔记本U盘安装CentOS 7
1. 下载镜像,制作U盘安装盘,设置BIOS启动等内容网上有大量的文章,本文不再赘述. 2. 开机U盘启动后会看到这样的界面: 3. 笔记本安装CentOS最容易出问题的地方在于USB安装盘的选择,如 ...
- 自己从0开始学习Unity的笔记 I (C#字符串转换为数字)
我基本上从0开始学习编程,运算符基本上跳过,因为知道了 “=”这个符号相当于赋值,然后“==”才是等于,其他和普通运算符号差不都,也就跳过了. 最基础的赋值那种,我看了下代码,似乎没什么难度,估计新手 ...
- WP8里dll类库(SDK)实现多语言多主题
近日在做一个sdk项目,因为要实现多语言切换,单独类库多语言这方面的实现不是很多,故整理如下. 1.添加AppResource.resx(英文)和AppResource-zh-CN.resx 假设我们 ...
- Netty 源码中对 Redis 协议的实现
原文地址: haifeiWu的博客 博客地址:www.hchstudio.cn 欢迎转载,转载请注明作者及出处,谢谢! 近期一直在做网络协议相关的工作,所以博客也就与之相关的比较多,今天楼主结合 Re ...
- java程序中获取kerberos登陆hadoop
本文由作者周梁伟授权网易云社区发布. 一般我们在使用kbs登陆hadoop服务时都直接在shell中调用kinit命令来获取凭证,这种方式简单直接,只要获取一次凭证之后都可以在该会话过程中重复访问.但 ...
- POI2014 RAJ-Rally
Description 给定一个\(N\)个点\(M\)条边的\(DAG(N,M\leq10^6)\),边权为\(1\).删去一个点,使剩余图中的最长路径最短,求删去的点和最长路径长度. Soluti ...
- 【新题】ocp 062 2019年考试新题-3
3.A database is open read write and the instance has multiple sessions some of which have active tra ...
- 点分治&&动态点分治学习笔记
突然发现网上关于点分和动态点分的教程好像很少……蒟蒻开篇blog记录一下吧……因为这是个大傻逼,可能有很多地方写错,欢迎在下面提出 参考文献:https://www.cnblogs.com/LadyL ...
- Code Chef DARTSEGM(计算几何+凸包)
题面 传送门 题解 好眼熟丫-- 一月月赛最后一题--,代码都不用改-- //minamoto #include<bits/stdc++.h> #define R register #de ...
- 手把手教你从零搭建Python数据分析环境
由于最近再做推荐系统的特征处理,需要借助一些工具来筛选特征.最初使用了R,R的安装很简单,而且API也很容易使用,直接就能出图.后来,发现很多人在python和R之间做选择,所以我也在两个工具间摇摆不 ...