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的布局的几个属性:

// HUD相对于父视图中心点的x轴偏移量和y轴偏移量

@property (assign) float xOffset;

@property (assign) float yOffset;

// HUD各元素与HUD边缘的间距

@property (assign) float margin;

// HUD背景框的最小大小

@property (assign) CGSize minSize;

// HUD的实际大小

@property (atomic, assign, readonly) CGSize size;

// 是否强制HUD背景框宽高相等

@property (assign, getter = isSquare) BOOL square;

MBProgressHUD是显示或者隐藏时候提供的属性:

// HUD显示和隐藏的动画类型

@property (assign) MBProgressHUDAnimation animationType;

// HUD显示的最短时间。设置这个值是为了避免HUD显示后立即被隐藏。默认值为0

@property (assign) float minShowTime;

// 这个属性设置了一个宽限期,它是在没有显示HUD窗口前被调用方法可能运行的时间。

// 如果被调用方法在宽限期内执行完,则HUD不会被显示。

// 这主要是为了避免在执行很短的任务时,去显示一个HUD窗口。

// 默认值是0。只有当任务状态是已知时,才支持宽限期。具体我们看实现代码。

@property (assign) float graceTime;

// 这是一个标识位,标明执行的操作正在处理中。这个属性是配合graceTime使用的。

// 如果没有设置graceTime,则这个标识是没有太大意义的。在使用showWhileExecuting:onTarget:withObject:animated:方法时,

// 会自动去设置这个属性为YES,其它情况下都需要我们自己手动设置。

@property (assign) BOOL taskInProgress;

// 隐藏时是否将HUD从父视图中移除,默认是NO。

@property (assign) BOOL removeFromSuperViewOnHide;

// 进度指示器,从0.0到1.0,默认值为0.0

@property (assign) float progress;

// 在HUD被隐藏后的回调

@property (copy) MBProgressHUDCompletionBlock completionBlock;

注意:

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后调用的方法

MBProgressHUD详解的更多相关文章

  1. IOS 第三方库之-MBProgressHUD的使用详解

    转自作者: weidfyr  http://www.aiuxian.com/article/p-3121607.html 1,MBProgressHUD常用属性和用法Demo - (void)test ...

  2. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  3. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  4. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  5. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  6. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  7. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  8. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  9. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

随机推荐

  1. VIP站长大会(北京站)常见问题解答

    功能支持问题 1. react能否和MIP结合使用,如果暂时不能以后是否有考虑?是否会和其他 js 框架(比如angular )结合? 目前暂无计划支持. 2. MIP页是否支持自定义cookie?实 ...

  2. 366. Find Leaves of Binary Tree C#

    Example:Given binary tree 1 / \ 2 3 / \ 4 5 Returns [4, 5, 3], [2], [1]. Explanation: 1. Removing th ...

  3. vs2013 中已经添加了引用,编译还是提示没有添加引用

    背景:在项目中需要引用wps中的etapi.dll.下载一个wps后,在项目中添加引用后. 同时在工程中使用using命令可以自动搜索进行添加该应用.但是,编译还是通不过.提示找不到excel.在网上 ...

  4. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试【转】

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  5. 无法启动MYSQL服务”1067 进程意外终止”解决办法

    原文:http://www.111cn.net/database/mysql/48888.htm   本文章主要是总结了各种导致mysql提示无法启动MYSQL服务"1067 进程意外终止& ...

  6. php生成图片缩略图的类方法

    //php生成缩略图片的类 class ResizeImage{ public $type;//图片类型 public $width;//实际宽度 public $height;//实际高度 publ ...

  7. 【原创】Spring MVC项目搭建(使用Java配置)

    一.使用Intellij idea,新建maven项目,选择maven-archetype-webapp. 二.在src/main下新建文件夹,命名为java,并标注为source folder. 三 ...

  8. android中RelativeLayout无法填充ScrollView布局的问题

    ScrollView是解决布局过长的情况下使用,一遍其下面会有个顶部布局,我项目里面是RelativeLayout,但是RelativeLayout无论设置 android:layout_height ...

  9. zoj 1586 QS Network

    最小生成树,刚刚学了Prim算法. 对每条边变的权值进行预处理,c[i][j] = c[i][j] + p[i] + p[j] 其中c[i][j]为输入的权值,p[i],p[j]为连接这两个节点所需的 ...

  10. GreenPlum学习之(Share-nothing)架构

    当今世界是一个信息化的世界,我们的生活中无论是生活.工作.学习都离不开信息系统的支撑.而信息系统的背后用于保存和处理最终结果的地方就是数据库.因此数据库系统就变得尤为重要,这意味着如果数据库如果面临问 ...