iOS MBProgressHUD 之带底板的加载提示

文章来自:http://blog.csdn.net/ryantang03/article/details/7877120

MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单、方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到。到GitHub上可以下载到项目源码https://github.com/jdg/MBProgressHUD,下载下来后直接把MBProgressHUD.h和MBProgressHUD.m拖入工程中就行,别忘了选择拷贝到工程。完了在需要使用的地方导入头文件就可以开始使用了。首先看下工程截图:

                                                                

 

接下来是整个Demo的完整界面,这里我只选择出了几个常用的对话框,其他样式的在源码提供的Demo里可以找到,要用的话直接参考就可以。

                                                                        

接下来直接上代码了,头文件部分:

 

[cpp] view plaincopy
  1. #import <UIKit/UIKit.h>  
  2. #import "MBProgressHUD.h"  
  3.   
  4. @interface ViewController : UIViewController  
  5. {  
  6.     //HUD(Head-Up Display,意思是抬头显示的意思)  
  7.     MBProgressHUD *HUD;  
  8. }  
  9.   
  10. - (IBAction)showTextDialog:(id)sender;  
  11. - (IBAction)showProgressDialog:(id)sender;  
  12. - (IBAction)showProgressDialog2:(id)sender;  
  13. - (IBAction)showCustomDialog:(id)sender;  
  14. - (IBAction)showAllTextDialog:(id)sender;  
  15.   
  16. @end  


实现文件(按钮实现部分):

 

[cpp] view plaincopy
  1. - (IBAction)showTextDialog:(id)sender {  
  2.     //初始化进度框,置于当前的View当中  
  3.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
  4.     [self.view addSubview:HUD];  
  5.       
  6.     //如果设置此属性则当前的view置于后台  
  7.     HUD.dimBackground = YES;  
  8.       
  9.     //设置对话框文字  
  10.     HUD.labelText = @"请稍等";  
  11.       
  12.     //显示对话框  
  13.     [HUD showAnimated:YES whileExecutingBlock:^{  
  14.         //对话框显示时需要执行的操作  
  15.         sleep(3);  
  16.     } completionBlock:^{  
  17.         //操作执行完后取消对话框  
  18.         [HUD removeFromSuperview];  
  19.         [HUD release];  
  20.         HUD = nil;  
  21.     }];  
  22. }  
  23.   
  24. - (IBAction)showProgressDialog:(id)sender {  
  25.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
  26.     [self.view addSubview:HUD];  
  27.     HUD.labelText = @"正在加载";  
  28.       
  29.     //设置模式为进度框形的  
  30.     HUD.mode = MBProgressHUDModeDeterminate;  
  31.     [HUD showAnimated:YES whileExecutingBlock:^{  
  32.         float progress = 0.0f;  
  33.         while (progress < 1.0f) {  
  34.             progress += 0.01f;  
  35.             HUD.progress = progress;  
  36.             usleep(50000);  
  37.         }  
  38.     } completionBlock:^{  
  39.         [HUD removeFromSuperview];  
  40.         [HUD release];  
  41.         HUD = nil;  
  42.     }];  
  43. }  
  44.   
  45. - (IBAction)showProgressDialog2:(id)sender {  
  46.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
  47.     [self.view addSubview:HUD];  
  48.     HUD.labelText = @"正在加载";  
  49.     HUD.mode = MBProgressHUDModeAnnularDeterminate;  
  50.       
  51.     [HUD showAnimated:YES whileExecutingBlock:^{  
  52.         float progress = 0.0f;  
  53.         while (progress < 1.0f) {  
  54.             progress += 0.01f;  
  55.             HUD.progress = progress;  
  56.             usleep(50000);  
  57.         }  
  58.     } completionBlock:^{  
  59.         [HUD removeFromSuperview];  
  60.         [HUD release];  
  61.         HUD = nil;  
  62.     }];  
  63. }  
  64.   
  65. - (IBAction)showCustomDialog:(id)sender {  
  66.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
  67.     [self.view addSubview:HUD];  
  68.     HUD.labelText = @"操作成功";  
  69.     HUD.mode = MBProgressHUDModeCustomView;  
  70.     HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Checkmark"]] autorelease];  
  71.     [HUD showAnimated:YES whileExecutingBlock:^{  
  72.         sleep(2);  
  73.     } completionBlock:^{  
  74.         [HUD removeFromSuperview];  
  75.         [HUD release];  
  76.         HUD = nil;  
  77.     }];  
  78.       
  79. }  
  80.   
  81. - (IBAction)showAllTextDialog:(id)sender {  
  82.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
  83.     [self.view addSubview:HUD];  
  84.     HUD.labelText = @"操作成功";  
  85.     HUD.mode = MBProgressHUDModeText;  
  86.       
  87.     //指定距离中心点的X轴和Y轴的偏移量,如果不指定则在屏幕中间显示  
  88. //    HUD.yOffset = 150.0f;  
  89. //    HUD.xOffset = 100.0f;  
  90.       
  91.     [HUD showAnimated:YES whileExecutingBlock:^{  
  92.         sleep(2);  
  93.     } completionBlock:^{  
  94.         [HUD removeFromSuperview];  
  95.         [HUD release];  
  96.         HUD = nil;  
  97.     }];  
  98. }  


依次实现的效果如下:

                          


                          

下面这个效果就类似Android中的Toast:

                                                     

以上就简单介绍了MBProgressHUD的使用,这里都是采用block的形式来操作的,这样写起代码来更直观也更高效。

转载于:https://www.cnblogs.com/wangyang1213/p/5300844.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HEC-RAS如何修改SA/2D Connection的名称

RAS Mapper中打开几何文件&#xff0c;进入编辑模式。

python调试蓝牙适配器_我写了一个查看Android手机的蓝牙模块是否开启的代码。在AVD上调试,因为是电脑,没有蓝牙适配器,可是...

为什么我用到蓝牙手机上的时候&#xff0c;刚打开这个程序&#xff0c;就会停止工作呢&#xff1f;代码如下&#xff0c;代码格式什么没错。publicclassMainActivityextendsActivity{BluetoothAdaptermBluetoothAdapternull;O...为什么我用到蓝牙手机上的时候&#xff0c;刚打开…

CFD何为收敛

文章来自——【小白的CFD之旅】26 何为收敛 - 流沙[胡坤] - 博客园 在CFD计算中&#xff0c;每一个网格上都会存储众多物理量&#xff0c;因此每一个网格上的任一个物理量在计算迭代过程中都会存在一个残差&#xff0c;这意味着在一次迭代过程中&#xff0c;同一物理量在不同的…

如何使用 Microsoft Azure Media Services 现场直播,(Live Streaming) 直播流媒体系统

不久之前&#xff0c;微软公司宣布了 Microsoft Azure Media Services 实时直播服务 ( Live ) 开始进入技术预览阶段&#xff0c;公开接受用户测试。 而这些实时直播服务其实早已被 NBC 运动频道用于多项重大运动赛事直播&#xff0c;包括英超联赛、NHL、周日橄榄球之夜 ( Sund…

vue如何split_vue代码分割的实现(codesplit)

在vue单页应用中&#xff0c;若不做任何处理&#xff0c;所有vue文件会打包为一个文件&#xff0c;这个文件非常的大&#xff0c;造成网页在首次进入时比较缓慢。做了代码分割后&#xff0c;会将代码分离到不同的bundle中&#xff0c;然后进行按需加载这些文件&#xff0c;能够…

两相流计算中,如何用Tecplot提取水相断面平均物理量?

1.显示水相 1.导入计算结果case、data文件到Tecplot中 2.Tecplot菜单栏Plot-Blanking-Value Blanking... 以体积分数为变量进行blanking: 此时&#xff0c;只显示体积分数<0.5的区域 2.提取水相断面物理量断面平均值 1.切片 Slices-Details-选择需要的切片位置-Extrac…

【Android实战】Gallary+ImageSwicther图片查看器

仿照如今各大新闻站点图片新闻的浏览模式&#xff0c;上面展示详细图片&#xff08;ImageSwitch&#xff09;&#xff0c;以下是能够滑动的小图片(Gallery)。当中须要注意的是ImageSwitch须要定义一个工厂返回的组件&#xff0c;而且能够设置动画效果。Gallery用适配器载入布局…

陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

龙源期刊网http://www.qikan.com.cn基于AutoLisp的AutoCAD二次开发自动生成系统图作者&#xff1a;郎建山金江来源&#xff1a;《科技视界》2013年第22期【摘要】本文主要阐述了应用AutoLisp语言二次开发AutoCAD自动生成系统图的实现方案。【关键词】AutoCAD&#xff1b;AutoLi…

Tecplot中使用公式

如图&#xff0c;计算结果中只有x、y、z三个方向流速&#xff0c;如果要知道某点流速大小需要自定义公式 方法&#xff1a; 其中Tecplot中自定义公式规则见该文&#xff1a; Tecplot中使用公式

birt报表与现有系统的集成

与现有的系统结合有两种常见方式(其一) 1、使用Birt自带的runtime 把Birt-runtime-2.1.3.zip解压&#xff0c;把WebViewerExample 拷贝到% tomcat-Home%\webapps目录下。 把你做好的*..rptdesign 和*.rptconfig文件放于% tomcat-Home%\webapps\ report目录下 我们把刚刚创建的第…

it工程师和码农的区别_你是开发工程师、程序员还是码农?

Developers are from Mars, programmers are from Venus, so where are coders from?不管是CPPer&#xff0c;Javaer&#xff0c;还是PHPer等等&#xff0c;不少开发人员经历过这样的困惑&#xff1a;我到底是工程师(SDE&#xff0c;or Developer)&#xff0c;程序员(Programm…

Tecplot中如何提取水线面(自由表面)并绘图

1.导入CAS和DAT文件 file-->load data 2.绘制体积分数云图 contour-->phase 2 3.绘制等值表面 plot-->iso-surface 4.从等值面提取数据 data-->extract-->iso-surfaces 如果报错记得勾选iso-surfaces&#xff0c;再进行上一步操作 此时&#xff0c;可以看到…

Mobiscroll的介绍【一款兼容PC和移动设备的滑动插件】

Mobiscroll是一个用于触摸设备的日期和时间选择器&#xff0c;它的使用不会改变HTML5、PhoneGap以及混合应用的原生用户体验。作为一款jQuery滑动选择插件&#xff0c;用户可以自定义主题样式&#xff0c;为自己的移动项目UI组件添色。Mobiscroll支持所有主流平台&#xff1a;i…

Tecplot云图锯齿状边界解决办法

问题描述&#xff1a; Tecplot绘制云图时出现锯齿状边界。如图&#xff1a; 解决办法&#xff1a; 2D Cartesion: Plot-Banking-Value Banking-Trim cells along boundary 3D Cartesion: 3D Cartesion中Banking选项卡无Trim cells along boundary选项&#xff0c;目前不知道…

zookeeper的acl权限控制_Zookeeper 权限控制 ACL介绍

zookeeper 的 ACL(Access Control List&#xff0c;访问控制表)权限在生产环境是特别重要的。ACL 权限可以针对节点设置相关读写等权限&#xff0c;保障数据安全性。permissions 可以指定不同的权限范围及角色。ACL 命令行1. getAcl 命令&#xff1a;获取某个节点的 acl 权限信…

sqlserver 跨服务器查询

有两种方法&#xff0c;先记下第一种 sqlserver manager里的新查询中启用 Ad Hoc Distributed Queries&#xff1a; exec sp_configure show advanced options,1 reconfigure exec sp_configure Ad Hoc Distributed Queries,1 reconfigure ---用openDATASOURCE执行 select * fr…

HEC-RAS泥沙计算中非恒定流和准恒定流的选择

准恒定流(Quasi-Unsteady Flow) 将非恒定流流量过程划分成小段的恒定流过程&#xff0c;并在该断时间段内执行恒定流分析计算水力特性&#xff0c;根据计算得到的水力特性计算该时段内的泥沙淤积结果。 优点&#xff1a;计算稳定&#xff0c;易收敛。 缺点&#xff1a;Quasi…

python cli_click python cli 开发包

python click 包是一个方便的cli 开发包&#xff0c;我们可以用来开发强大的cli 应用使用venv 进行环境准备&#xff0c;示例代码来自官方venv 环境准备python3 -m venv demoapp安装pip install click基本使用代码cli.pyimport clickclick.command()click.option("--count…

ElasticSearch 2 (27) - 信息聚合系列之故事开始

ElasticSearch 2 (27) - 信息聚合系列之故事开始 摘要 到目前为止&#xff0c;本书都在着重介绍搜索。对于搜索&#xff0c;我们有查询条件以及与查找到与条件匹配的集合。这个过程就和如大海捞针一样。 对于聚合&#xff0c;我们站在远处总观数据。与查看单个文档不同&#xf…

3个阶段 项目征名_萧山日报数字报-蓝城萧立7大代建项目征名开启

■记者 陈胜楠“家”&#xff0c;对于中国人而言&#xff0c;代表的是心灵深处的幸福感。因此它的赋名不光大气悦耳&#xff0c;更饱含美好寓意。不过&#xff0c;一般而言&#xff0c;自己家小区的案名往往是“与生俱来”的&#xff0c;其起名的由来、内含的寓意等&#xff0c…