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. IT兄弟连 JavaWeb教程 El基本语法

    EL(Expression Language)表达式语言是在JSP 2.0版本中引入的新特性,它用于JSP文件中的数据访问.这种表达式语言能简化JSP文件中数据访问的代码,可用来替代传统的基于&quo ...

  2. Mycat(1)

    https://www.jianshu.com/p/26513f428ecf https://blog.csdn.net/fly910905/article/details/87101059 http ...

  3. [Chrome](CSS) 解决Chrome font-size 小于 12px 无效

    Chrome中 font-size 小于 12px 会失效. 解决的办法一种是: -webkit-text-size-adjust:none; (但是Chrome27之后取消了支持) 利用CSS3的缩 ...

  4. [LOJ#10042] 收集雪花

    题目链接: 点我 题目分析: 双指针扫描可以保证在\(O(n)\)的时间复杂度内处理这道题.另外,虽然这个题标签是\(hash\),但是字符串\(hash\)是可以卡掉的,所以建议直接离散化. 维护两 ...

  5. Longest Palindromic Substring笔记

    这是一道在leetcode上看到的题目 一开始,我能想到的思路是蛮力法: 就遍历每个字符,然后对每个字符都尝试从1到n的长度,看有没有回文串,并记录以该字符起始的回文串的最大长度.这个思路其实没有上手 ...

  6. freertos之队列

    任务间信息的传递是通过队列来实现的(单个值.结构体.共享数据指针.),队列是个独立的内核对象,即不属于任何一个任务,每个任务都可以向队列中发送数据和从队列中读数据.对于数据量小的场合通常队列是通过字节 ...

  7. python学习之邮件

    分类smtp邮件 html邮件,带附件的邮件. 一 STTP邮件:设置SMTP代理机构,发送人的邮箱和密码,收件人的邮箱地址(email模块):接收端,发送(smtplib模块).SMTP(smtp_ ...

  8. 实战:mysql写存储过程并定时调用

    有表:cap_meter_detail 字段:recordtime 情景:recordtime每半个小时记录一次,故一天会产生很很多数据,我们要做的是,每天00:00:00对cap_meter_det ...

  9. Spring注解和JDK注解

    1.添加xsd约束 xmlns:context="http://www.springframework.org/schema/context" http://www.springf ...

  10. Java删除List指定元素

    List<String> lists = new ArrayList<>(); list.add("123"); list.add("456&qu ...