iOS MBProgressHUD 之带底板的加载提示
文章来自:http://blog.csdn.net/ryantang03/article/details/7877120
MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单、方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到。到GitHub上可以下载到项目源码https://github.com/jdg/MBProgressHUD,下载下来后直接把MBProgressHUD.h和MBProgressHUD.m拖入工程中就行,别忘了选择拷贝到工程。完了在需要使用的地方导入头文件就可以开始使用了。首先看下工程截图:
接下来是整个Demo的完整界面,这里我只选择出了几个常用的对话框,其他样式的在源码提供的Demo里可以找到,要用的话直接参考就可以。
接下来直接上代码了,头文件部分:
- #import <UIKit/UIKit.h>
- #import "MBProgressHUD.h"
- @interface ViewController : UIViewController
- {
- //HUD(Head-Up Display,意思是抬头显示的意思)
- MBProgressHUD *HUD;
- }
- - (IBAction)showTextDialog:(id)sender;
- - (IBAction)showProgressDialog:(id)sender;
- - (IBAction)showProgressDialog2:(id)sender;
- - (IBAction)showCustomDialog:(id)sender;
- - (IBAction)showAllTextDialog:(id)sender;
- @end
实现文件(按钮实现部分):
- - (IBAction)showTextDialog:(id)sender {
- //初始化进度框,置于当前的View当中
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- //如果设置此属性则当前的view置于后台
- HUD.dimBackground = YES;
- //设置对话框文字
- HUD.labelText = @"请稍等";
- //显示对话框
- [HUD showAnimated:YES whileExecutingBlock:^{
- //对话框显示时需要执行的操作
- sleep(3);
- } completionBlock:^{
- //操作执行完后取消对话框
- [HUD removeFromSuperview];
- [HUD release];
- HUD = nil;
- }];
- }
- - (IBAction)showProgressDialog:(id)sender {
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- HUD.labelText = @"正在加载";
- //设置模式为进度框形的
- HUD.mode = MBProgressHUDModeDeterminate;
- [HUD showAnimated:YES whileExecutingBlock:^{
- float progress = 0.0f;
- while (progress < 1.0f) {
- progress += 0.01f;
- HUD.progress = progress;
- usleep(50000);
- }
- } completionBlock:^{
- [HUD removeFromSuperview];
- [HUD release];
- HUD = nil;
- }];
- }
- - (IBAction)showProgressDialog2:(id)sender {
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- HUD.labelText = @"正在加载";
- HUD.mode = MBProgressHUDModeAnnularDeterminate;
- [HUD showAnimated:YES whileExecutingBlock:^{
- float progress = 0.0f;
- while (progress < 1.0f) {
- progress += 0.01f;
- HUD.progress = progress;
- usleep(50000);
- }
- } completionBlock:^{
- [HUD removeFromSuperview];
- [HUD release];
- HUD = nil;
- }];
- }
- - (IBAction)showCustomDialog:(id)sender {
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- HUD.labelText = @"操作成功";
- HUD.mode = MBProgressHUDModeCustomView;
- HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Checkmark"]] autorelease];
- [HUD showAnimated:YES whileExecutingBlock:^{
- sleep(2);
- } completionBlock:^{
- [HUD removeFromSuperview];
- [HUD release];
- HUD = nil;
- }];
- }
- - (IBAction)showAllTextDialog:(id)sender {
- HUD = [[MBProgressHUD alloc] initWithView:self.view];
- [self.view addSubview:HUD];
- HUD.labelText = @"操作成功";
- HUD.mode = MBProgressHUDModeText;
- //指定距离中心点的X轴和Y轴的偏移量,如果不指定则在屏幕中间显示
- // HUD.yOffset = 150.0f;
- // HUD.xOffset = 100.0f;
- [HUD showAnimated:YES whileExecutingBlock:^{
- sleep(2);
- } completionBlock:^{
- [HUD removeFromSuperview];
- [HUD release];
- HUD = nil;
- }];
- }
依次实现的效果如下:
下面这个效果就类似Android中的Toast:
以上就简单介绍了MBProgressHUD的使用,这里都是采用block的形式来操作的,这样写起代码来更直观也更高效。
转载于:https://www.cnblogs.com/wangyang1213/p/5300844.html
iOS MBProgressHUD 之带底板的加载提示相关推荐
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- iOS和tvOS游戏按需加载资源简介
2019独角兽企业重金招聘Python工程师标准>>> 戴维营教育翻译:感谢Davis Allie的An Introduction to On-Demand Resources on ...
- IOS欢迎界面Launch Screen动态加载广告
IOS欢迎界面Launch Screen动态加载广告,ioslaunch 当我们打开一款应用程序的时候,首先映入眼帘的往往并不是程序的主界面,而是经过精心设计的欢迎界面,这个界面通常会停留几秒钟,然后 ...
- Ladda – 把加载提示效果集成到按钮中,提升用户体验
Ladda 是一组集成了加载提示的按钮,以弥合行动和反馈之间的时间间隔,提供更好的功能使用体验.主要用于在用户点击提交之后,向用户提供即时的反馈,让他们知道浏览器正在处用户提交的任务. 您可能感兴趣的 ...
- 10.1登录成功提示、加载提示
制作登录成功提示 我们可以去vant找到 接下来的操作就是和之前一样 先去src/utils/vant.js导入 因为这个轻提示,整个项目都需要它,所以我们用全局引入的方式 如果想改成别的样式 加载提 ...
- IOS开发UI篇之──自定义加载等待框(MBProgressHUD)
这里介绍一下网友开源的MBProgressHUD类,实现等待框, 一.网上下载 MBProgessHUD 类文件,直接导入到工程即可 二.示例分析 在我的工程中示例如下: 1)在ShowImageV ...
- 【iOS】通过NSURLProtocol提高Web加载速度
一.项目需求 项目中有个海报功能,是用UIWebView加载h5网页的形式.因为海报的使用率比较高,如果网页加载得比较慢会严重影响用户体验,因此我们想了一个方法,在用户启动APP后,如果连接了Wi-F ...
- iOS开发之控制器创建与加载(生命周期)
1.如何创建一个控制器 控制器常见的创建方式有以下几种: (1)通过storyboard创建 (2)直接创建 MJViewController *mj = [[MJViewController all ...
- 微信小程序——焦点图 可预览查看大图缩放(多张可左右滑动) 带页码 loading 加载中 / https不显示图
微信小程序焦点图,可以滑动预览大图缩放 微信小程序自带焦点图swiper ,但是没有页码,只有小圆点,所以要自己写 (在查看大图时遇到一个问题,安卓上查看大图部分图不显示,经排查,发现不显示的图片地址 ...
最新文章
- nodejs学习资料
- VS2010打开项目提示未能正确加载解决方案中一个或多个项目
- php阿里的同步工具canal,基于阿里的Canal实现数据同步
- 家庭装修里最大的问题
- Spring boot 打包jar 将配置文件分离
- Linux安装好php后找不到php.ini
- php入口函数,php 常用的系统函数
- 主站系统服务器选择,配电网自动化主站系统的结构_功能及操作系统的选择.doc...
- c语言手游常用代码,c语言源代码【操作流程】
- linux 双网卡 debian,Debian 双网卡bond
- plsql变量参数化_谁说建模一定要会画图?参数化设计让你事半功倍!
- 【精心挑选】推荐几款非常棒的 jQuery 全景图片展示插件
- 安防在智能家居中扮演什么角色?
- 关于Universal-Image-Loader加载同一张图只成功一张的问题
- 电子与智能化工程专业承包资质标准
- 《生物化学与分子生物学》----酶促反应动力学----听课笔记(九)
- 【学习记录】图片行列切割与子图行列拼接之中央裁剪法
- 基于qiankun搭建ng-alain15微前端项目入门实践
- 超级右键 iRightMouse --Mac强大的右键菜单设置工具
- AD各种布线方法总结