github链接地址

MBProgressHUD是一个开源的第三方类库实现了很多种样式的提示框,类似Activity indicator,使用上简单、方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到。

MBProgressHUD is an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread. The HUD is meant as a replacement for the undocumented, private UIKit UIProgressHUD with some additional features.

Usage

The main guideline you need to follow when dealing with MBProgressHUD while running long-running tasks is keeping the main thread work-free, so the UI can be updated promptly. The recommended way of using MBProgressHUD is therefore to set it up on the main thread and then spinning the task, that you want to perform, off onto a new thread.

程序在执行一个长时间任务的时候(例如网络请求),可以使用该类库在主窗口中添加一个提示框显示进度或者相关的提示信息。

  1. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  2. dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
  3. // Do something...
  4. dispatch_async(dispatch_get_main_queue(), ^{
  5. [MBProgressHUD hideHUDForView:self.view animated:YES];
  6. });
  7. });

在这个类库中,提供了丰富的设置方法,可以构建出令人满意的提示框,在github下载这个项目就包括了一个demo,里面涵盖了所以基本的设置方法。

下面简单的记录一下。

//新建一个HUD添加到视图中

MBProgressHUD *HUD;

HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];

// Regiser for HUD callbacks so we can remove it from the window at the right time设置代理
HUD.delegate = self;

// Show the HUD while the provided method executes in a new thread 显示HUD的同时执行其他的操作
[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];

//设置相关的文本提示信息

HUD.labelText = @"Loading";

HUD.detailsLabelText = @"updating data";

//设置HUD的颜色  Set the hud to display with a color

HUD.color = [UIColor colorWithRed:0.23 green:0.50 blue:0.82 alpha:0.90];

// Set determinate mode
HUD.mode = MBProgressHUDModeDeterminate;

//HUD的mode包括以下几种:

typedef enum {
/** Progress is shown using an UIActivityIndicatorView. This is the default. */  (默认是UIActivityIndicatorView样式)
MBProgressHUDModeIndeterminate,     
/**Progress is shown using a round, pie-chart like, progress view. */  (类似饼状图)
MBProgressHUDModeDeterminate,
/**Progress is shown using a ring-shaped progress view. */  (类似圆环)
MBProgressHUDModeAnnularDeterminate,
/**Shows a custom view */  (自定义)
MBProgressHUDModeCustomView,
/** Shows only labels */  (纯文本)
MBProgressHUDModeText
} MBProgressHUDMode;

当mode选择custom时,需要设置custom view

HUD.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"37x-Checkmark.png"]] ;

使用Blocks

[hud showAnimated:YES whileExecutingBlock:^{
[self myTask]; //hud显示过程中执行的其他操作
} completionBlock:^{
[hud removeFromSuperview];  
}];

// 设置HUD显示所在的视图背景暗淡

HUD.dimBackground = YES;

//设置HUD的进度

HUD.progress

//其他

- (void)show:(BOOL)animated;

- (void)hide:(BOOL)animated;

- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;

iOS 第三方类库之MBProgressHUD的更多相关文章

  1. iOS第三方类库JSPatch(热更新)

    ---------------------------------------------------------------------------------------------------- ...

  2. iOS第三方类库汇总【持续更新】

    在我们平时开发中会经常使用一些第三方开发的开源类库.这样会有效地提高我们开发项目的效率,在这里我找了好几十个进行一个汇总,供大家参考使用,方便大家在需要的时候能容易找到. UI篇 awesome-io ...

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

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

  4. iOS 常用第三方类库、完整APP示例

    一.第三方类库 1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com ...

  5. iOS开发常用的第三方类库

    在iOS开发中不可避免的会用到一些第三方类库,它们提供了很多实用的功能,使我们的开发变得更有效率:同时,也可以从它们的源代码中学习到很多有用的东西. Reachability 检测网络连接 用来检查网 ...

  6. 【转】iOS开发常用的第三方类库

    原文: http://blog.csdn.net/xiazailushang/article/details/9716043 在iOS开发中不可避免的会用到一些第三方类库,它们提供了很多实用的功能,使 ...

  7. iOS常用第三方类库及Xcode插件

    第三方类库(github地址): 1.AFNetworking 网络数据     https://github.com/AFNetworking/AFNetworking 2.SDWebImage 图 ...

  8. iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库

    一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...

  9. IOS网络编程——第三方类库

    IOS网络编程——第三方类库 目录 概述 ASIHttpRequest AFNetworking 其他 概述 ASIHttpRequest AFNetworking 其他

随机推荐

  1. Unity3D 性能优化

    Unity3D 性能优化 一.程序方面 01.务必删除脚本中为空或不需要的默认方法: 02.只在一个脚本中使用OnGUI方法: 03.避免在OnGUI中对变量.方法进行更新.赋值,输出变量建议在Upd ...

  2. Unity NGUI学习

    环境 Unity4.3    NGUI v3.68 导入 Project界面->右键->import package->custom package载入安装包即可 untiy4.6用 ...

  3. jzoj5989. 【北大2019冬令营模拟2019.1.6】Forest (set)

    题面 题解 为了一点小细节卡了一个下午--我都怕我瞎用set把电脑搞炸-- 观察一次\(1\)操作会造成什么影响,比如说把\(A[i]\)从\(x\)改成\(y\): \(D[x]\)会\(-1\), ...

  4. C 语言实例 - 使用结构体(struct)

    C 语言实例 - 使用结构体(struct) C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...

  5. SQL COUNT DISTINCT 函数

    定义和用法 可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目. 语法 SELECT COUNT(DISTINCT column(s)) FROM table 例子 注意: ...

  6. Jquery | 基础 | html()

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. FMDB存储模型对象(以二进制存储)用NSKeyedArchiver archivedDataWithRootObject序列号,NSKeyedUnarchiver unarchiveObjectWithData反序列化(重点坑是sql语句@"insert into t_newsWithChannel (nwesName,newsType) values (?,?)")一定要用占位符

    交友:微信号 dwjluck2013 一.封装FMDB单例 (1)JLFMDBHelp.h文件 #import <Foundation/Foundation.h> #import < ...

  8. DRF教程4-视图集和路由类

    rest框架包括一个处理viewset的抽象,允许开发人员集中精力处理api交互和建模,url构造都根据常见方式自动处理. ViewSet类 几乎和VIew类一样,不过它提供read,update这样 ...

  9. Technocup 2017 - Elimination Round 1 (Unofficially Open for Everyone, Rated for Div. 2) B

    Vasily exited from a store and now he wants to recheck the total price of all purchases in his bill. ...

  10. 学习typescript(一)

    环境 必装软件 node,推荐 node 8.0 npm,推荐 npm 5.0 git, 最新版 vscode, 编绎器 必装包 tsc: npm install -g typescript typi ...