IOS 第三方库之-MBProgressHUD的使用详解
转自作者: weidfyr http://www.aiuxian.com/article/p-3121607.html
1,MBProgressHUD常用属性和用法Demo
- (void)testMBProgressHUD
{
NSLog(@"test MBProgressHUD ");
/*
要将一个MBProgressHUD显示出来,1,创建对象;2,将HUD添加到view上;3,调用show方法
隐藏,1,hide:方法; 2,hide: afterDelay: 方法
其它的用法都是特殊的设置等
*/
HUD = [[MBProgressHUD alloc] init];
[self.view addSubview:HUD];
// HUD.mode = MBProgressHUDModeIndeterminate;//菊花,默认值
// HUD.mode = MBProgressHUDModeDeterminate;//圆饼,饼状图
// HUD.mode = MBProgressHUDModeDeterminateHorizontalBar;//进度条
HUD.mode = MBProgressHUDModeAnnularDeterminate;//圆环作为进度条
// HUD.mode = MBProgressHUDModeCustomView; //需要设置自定义视图时候设置成这个
// HUD.mode = MBProgressHUDModeText; //只显示文本
//1,设置背景框的透明度 默认0.8
HUD.opacity = 1;
//2,设置背景框的背景颜色和透明度, 设置背景颜色之后opacity属性的设置将会失效
HUD.color = [UIColor redColor];
HUD.color = [HUD.color colorWithAlphaComponent:1];
//3,设置背景框的圆角值,默认是10
HUD.cornerRadius = 20.0;
//4,设置提示信息 信息颜色,字体
HUD.labelColor = [UIColor blueColor];
HUD.labelFont = [UIFont systemFontOfSize:13];
HUD.labelText = @"Loading...";
//5,设置提示信息详情 详情颜色,字体
HUD.detailsLabelColor = [UIColor blueColor];
HUD.detailsLabelFont = [UIFont systemFontOfSize:13];
HUD.detailsLabelText = @"LoadingLoading...";
//6,设置菊花颜色 只能设置菊花的颜色
HUD.activityIndicatorColor = [UIColor blackColor];
//7,设置一个渐变层
HUD.dimBackground = YES;
//8,设置动画的模式
// HUD.mode = MBProgressHUDModeIndeterminate;
//9,设置提示框的相对于父视图中心点的便宜,正值 向右下偏移,负值左上
HUD.xOffset = -80;
HUD.yOffset = -100;
//10,设置各个元素距离矩形边框的距离
HUD.margin = 0;
//11,背景框的最小大小
HUD.minSize = CGSizeMake(50, 50);
//12设置背景框的实际大小 readonly
CGSize size = HUD.size;
//13,是否强制背景框宽高相等
HUD.square = YES;
//14,设置显示和隐藏动画类型 有三种动画效果,如下
// HUD.animationType = MBProgressHUDAnimationFade; //默认类型的,渐变
// HUD.animationType = MBProgressHUDAnimationZoomOut; //HUD的整个view后退 然后逐渐的后退
HUD.animationType = MBProgressHUDAnimationZoomIn; //和上一个相反,前近,最后淡化消失
//15,设置最短显示时间,为了避免显示后立刻被隐藏 默认是0
// HUD.minShowTime = 10;
//16,
/*
// 这个属性设置了一个宽限期,它是在没有显示HUD窗口前被调用方法可能运行的时间。
// 如果被调用方法在宽限期内执行完,则HUD不会被显示。
// 这主要是为了避免在执行很短的任务时,去显示一个HUD窗口。
// 默认值是0。只有当任务状态是已知时,才支持宽限期。具体我们看实现代码。
@property (assign) float graceTime;
// 这是一个标识位,标明执行的操作正在处理中。这个属性是配合graceTime使用的。
// 如果没有设置graceTime,则这个标识是没有太大意义的。在使用showWhileExecuting:onTarget:withObject:animated:方法时,
// 会自动去设置这个属性为YES,其它情况下都需要我们自己手动设置。
@property (assign) BOOL taskInProgress;
*/
//17,设置隐藏的时候是否从父视图中移除,默认是NO
HUD.removeFromSuperViewOnHide = NO;
//18,进度指示器 模式是0,取值从0.0————1.0
// HUD.progress = 0.5;
//19,隐藏时候的回调 隐藏动画结束之后
HUD.completionBlock = ^(){
NSLog(@"abnnfsfsf");
};
//设置任务,在hud上显示任务的进度
[HUD showWhileExecuting:@selector(myProgressTask) onTarget:self withObject:nil animated:YES];
// [HUD show:YES];
//两种隐藏的方法
// [HUD hide:YES];
[HUD hide:YES afterDelay:5];
}
//任务,测试进度显示
- (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);
}
}
MBProgressHUD 使用详解
1,MBProgressHUDMode枚举
MBProgressHUD中定义的MBProgressHUDMode枚举。它用来表示HUD窗口的模式,即我们从效果图中看到的几种显示样式。
|
typedef enum { // 使用UIActivityIndicatorView来显示进度,这是默认值 MBProgressHUDModeIndeterminate, // 使用一个圆形饼图来作为进度视图 MBProgressHUDModeDeterminate, // 使用一个水平进度条 MBProgressHUDModeDeterminateHorizontalBar, // 使用圆环作为进度条 MBProgressHUDModeAnnularDeterminate, // 显示一个自定义视图,通过这种方式,可以显示一个正确或错误的提示图 MBProgressHUDModeCustomView, // 只显示文本 MBProgressHUDModeText } MBProgressHUDMode; |
2,MBProgressHUD的基本组成:
A,loading动画:就是MBProgressHUD上部分显示的动画效果的一部分,这个区域也可以使用我们自己设定的UIImageView视图,这个视图显示内容由我们设置的模式来决定,可以是菊花,进度条,圆环,也可以我们自定义视图。
B,标题文本:主要用于显示提示信息。这个文本框是可选的,通常位于loading动画的下面,且是单行显示。它会根据labelText属性来自适应文本的大小,有上限,过长会显示“…”。
C,详情文本框。如果觉得标题不够详细,这里可以添加附属信息,可以将详细信息放到这里,该文本框显示的是detailLabelText属性的值,它是多行显示的。另外详情显示还依赖于labelText属性的值,只有labelText属性被设置了,并且不是空串,才会显示detailsLabel。
D,HUD背景框:主要作用是上面三个部分的一个背景,用来突出显示上面三部分。
3,MBProgressHUD 常用属性
|
MBProgressHUD几个常用的属性: // 背景框的透明度,默认值是0.8 @property (assign) float opacity; // 背景框的颜色 // 需要注意的是如果设置了这个属性,则opacity属性会失效,即不会有半透明效果 @property (MB_STRONG) UIColor *color; // 背景框的圆角半径。默认值是10.0 @property (assign) float cornerRadius; // 标题文本的字体及颜色 @property (MB_STRONG) UIFont* labelFont; @property (MB_STRONG) UIColor* labelColor; // 详情文本的字体及颜色 @property (MB_STRONG) UIFont* detailsLabelFont; @property (MB_STRONG) UIColor* detailsLabelColor; // 菊花的颜色,默认是白色 @property (MB_STRONG) UIColor *activityIndicatorColor; dimBackground 属性,由中心向MBProgressHUD视图的四周绘制了一个渐变层。 @property (assign) BOOL dimBackground; //设置 MBProgressHUD 显示的动画模式 @property (assign) MBProgressHUDMode mode; 控制HUD的布局的几个属性:
|
注意:
1),MBProgressHUD视图会充满其父视图的frame内,因此,当MBProgressHUD显示时,它也会屏蔽父视图的各种交互操作。
2)自定义loading动画视图,此时选择的模式是MBProgressHUDModeCustomView。或者不显示loading动画视图,而只显示文本框(MBProgressHUDModeText)。
3)对于HUD的隐藏,MBProgressHUD提供了两个方法,一个是-hide:,另一个是-hide:afterDelay:,后者基于前者
4)MBProgressHUD还为我们提供了几个便捷显示和隐藏HUD窗口的方法
|
+ (MB_INSTANCETYPE)showHUDAddedTo:(UIView *)view animated:(BOOL)animated + (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated + (NSUInteger)hideAllHUDsForView:(UIView *)view animated:(BOOL)animated |
5)MBProgressHUD还为我们提供了一个代理MBProgressHUDDelegate,这个代理中只提供了一个方法,即:
- (void)hudWasHidden:(MBProgressHUD *)hud;//隐藏HUD后调用的方法
IOS 第三方库之-MBProgressHUD的使用详解的更多相关文章
- 【转】提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果
原文网址:http://www.zhimengzhe.com/IOSkaifa/37910.html MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显 ...
- fir.im Weekly - 热门 iOS 第三方库大盘点
本期 fir.im Weekly 收集的热度资源,大部分关于Android.iOS 开发工具.源码和脑洞大开的 UI 动画,希望给你带来更多的工作创意与灵感. 盘点国内程序员不常用的热门iOS第三方库 ...
- iOS,第三方库使用
1.ASIHttpRequest网络请求库 2.MBProgressHUD指示层库 3.Toast+UIView提示库 4.SDWebImage图片缓存库 5.MGSwipeTableCell单元格侧 ...
- iOS 第三方库、插件、知名博客总结
iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...
- 你一定能用的上的iOS第三方库
点国内程序员不常用的热门iOS第三方库:看完,还敢自称"精通iOS开发"吗? 综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型, ...
- iOS第三方库
热门iOS第三方库:看完,还敢自称”精通iOS开发”吗? 综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? h ...
- iOS开发进阶 - 使用Carthage管理iOS第三方库
移动端访问不佳,请访问我的个人博客 最近在研究Swift,一不小心发现一个好的的管理iOS第三方库Carthage,就跟第一次使用CocoaPods时一样兴奋不已,在研究了大半天后终于能用了,使用起来 ...
- 【iOS 使用github上传代码】详解
[iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...
- 常用iOS第三方库以及XCode插件介绍
第三方库 CocoaPod CocoaPod并不是iOS上的第三方库 而是大名鼎鼎的第三方库的管理工具 在CocoaPod没有出现之前 第三方库的管理是非常痛苦的 尤其是一些大型的库(比如nimbus ...
随机推荐
- nginx(1)
下一篇:nginx(2) 一.engin X 市场的服务器非常的多,这里简单介绍几种常用的. Apache:源代码开放,跨平台,可移植,且支持的模块非常丰富,虽然在速度性能上不如其他轻量级的web服务 ...
- .NET 简单的扩展方法使用。
写代码时,我们经常会碰到dll中提供的方法,不够用或者不好用的情况.而且我们也不方便去更改dll本身的源码. 这时候我们可以使用.NET提供的"扩展方法"去解决这个问题. 下面我写 ...
- Jquery 获取上传文件大小
<input type="file" id="file1" /> <script> var size = $("#file1& ...
- sudo密码错误的解决办法
按一下Caps Lock键,如果大写灯亮了,再按一下. 然后重新输入sudo密码,尝试.
- Linux 图形系统界面 和 文本系统和界面切换
本着,有好轮子就不要乱造的原则 下面是原文连接,来自三石兄的博客 http://www.cnblogs.com/deepstone/p/3344430.html 1.默认开机进入文本模式 如果想让开机 ...
- 关于PHP的一小段代码求解如下求解"%2\$s"
<?php$format = "The %2\$s contains %1\$d monkeys";printf($format, 8, "北京");?& ...
- jQuery EasyUI的使用入门
jQuery EasyUI不是什么太高级的东西,就是用jQuery写了很多方法.定义了很多属性,通过调用这些方法.属性,可以达到一些特定的效果,然后我们再根据具体需求微调就好了.至少需要导入两个样式表 ...
- [转]查看Android源码版本
有时候我们辛苦取到Android的源代码,想知道它的确切版本号,比如有时候我们只粗略知道拿到的是2.3的源码,但并不明确他的小版本号,这就是有时候明明都是2.3的代码可比较起来还是有差异的原因,比方说 ...
- A- Bear and Five Cards(codeforces ROUND356 DIV2)
A. Bear and Five Cards time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- Ubuntu操作相关笔记
Eclipse添加图标 #sudo vim /usr/share/applications/eclipse.desktop 写入以下内容 [Desktop Entry] Name=Eclipse Co ...