简介

SVProgressHUD是简单易用的显示器,用于指示一个持续进行的任务的进度.

快速入门

安装

通过Cocoapods

pod 'SVProgressHUD'

手动安装

  • 拖拽 SVProgressHUD/SVProgressHUD 文件 到你的项目.
  • 注意把 SVProgressHUD.bundle 添加进 Targets->Build Phases->Copy Bundle Resources.
  • 添加 QuartzCore framework 到你的项目.

使用

(参见Xcode项目文档 /Demo)

SVProgressHUD 作为一个单例(也就是说,它并不需要创建和实例化,你直接调用, 如[SVProgressHUD method]).

使用 SVProgressHUD是非常明智的!常用场景:下拉刷新,无限滚动,发送消息

使用 SVProgressHUD在您的应用程序通常看起来简单:

[SVProgressHUD show];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// time-consuming task
dispatch_async(dispatch_get_main_queue(), ^{
[SVProgressHUD dismiss];
});
});

显示 HUD

您可以使用下面的方法中的任意一个来显示HUD,以及指示任务的状态:

+ (void)show;
+ (void)showWithStatus:(NSString*)string;

如果您想在HUD指示任务的进度,请使用下列操作之一:

+ (void)showProgress:(CGFloat)progress;
+ (void)showProgress:(CGFloat)progress status:(NSString*)status;

隐藏 HUD

HUD可以用以下方法隐藏:

+ (void)dismiss;
+ (void)dismissWithDelay:(NSTimeInterval)delay;

如果你想显示多个HUD ,可以使用使用一下方法:

+ (void)popActivity;

该HUD将自动消失, popActivity将与显示的次数匹配。

显示一个提示消息

也可以用于显示一个提示信息。所述显示时间取决于给定的字符串的长度( 0.5至5秒)。

+ (void)showInfoWithStatus:(NSString *)string;
+ (void)showSuccessWithStatus:(NSString*)string;
+ (void)showErrorWithStatus:(NSString *)string;
+ (void)showImage:(UIImage*)image status:(NSString*)string;

自定义

SVProgressHUD 可通过下列方法进行个性化定制:

+ (void)setDefaultStyle:(SVProgressHUDStyle)style;                  // 默认是SVProgressHUDStyleLight
+ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType; // 默认是SVProgressHUDMaskTypeNone
+ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type; // 默认是 SVProgressHUDAnimationTypeFlat
+ (void)setRingThickness:(CGFloat)width; // 默认是 2 pt
+ (void)setCornerRadius:(CGFloat)cornerRadius; // 默认是 14 pt
+ (void)setFont:(UIFont*)font; // 默认是 [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
+ (void)setForegroundColor:(UIColor*)color; // 默认是 [UIColor blackColor], 仅对 SVProgressHUDStyleCustom 有效
+ (void)setBackgroundColor:(UIColor*)color; // 默认是 [UIColor whiteColor], 仅对 SVProgressHUDStyleCustom 有效
+ (void)setInfoImage:(UIImage*)image; //默认是bundle文件夹中的提示图片.
+ (void)setSuccessImage:(UIImage*)image; // 默认是bundle文件夹中的成功图片.
+ (void)setErrorImage:(UIImage*)image; // 默认是bundle文件夹中的错误图片.
+ (void)setViewForExtension:(UIView*)view; // 默认是nil,仅当设置了 #define SV_APP_EXTENSIONS 时有效.

通知

SVProgressHUD通过 NSNotificationCenter 注册4份通知,以响应正在显示/消失:

  • SVProgressHUDWillAppearNotification 提示框即将出现
  • SVProgressHUDDidAppearNotification 提示框已经出现
  • SVProgressHUDWillDisappearNotification 提示框即将消失
  • SVProgressHUDDidDisappearNotification 提示框已经消失

每个通知传递一个 userInfo字典,字典中包含HUD的状态字符串(如果有的话) ,可通过 SVProgressHUDStatusUserInfoKey作为键来获取。

SVProgressHUD还发送通知:

SVProgressHUDDidReceiveTouchEventNotification当用户触摸整体屏幕上 和

' SVProgressHUDDidTouchDownInsideNotification当用户直接在HUD接触。这两个通知没有 userInfo参数,但包含了有关的触摸的UIEvent` 参数.

App 扩展(App Extension)

当在应用程序中使用SVProgressHUD时, 要定义常量 #define SV_APP_EXTENSIONS避免使用不可用的API。然后从你的扩展视图控制器中通过self.view 调用 setViewForExtension: 即可。

注意: 此处指的是"App Extension",不是类目."File->New->Target...-> iOS -> App Extension->Photo Editing Extension". 如果未用到,可忽略. 更多细节参考: https://github.com/TransitApp/SVProgressHUD/issues/390

SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件的更多相关文章

  1. iOS进度指示器——NSProgress

    iOS进度指示器——NSProgress 一.引言 在iOS7之前,系统一直没有提供一个完整的框架来描述任务进度相关的功能.这使得在开发中进行耗时任务进度的监听将什么麻烦,在iOS7之后,系统提供了N ...

  2. MBProgressHUD上传照片进度提示

    第一步,控制器先来个属性 @property (strong, nonatomic) MBProgressHUD *HUD; 第二步,显示与隐藏的调用方法 - (void)hudTipWillShow ...

  3. Xamarin.iOS调试提示需要iOS SDK

    Xamarin.iOS调试提示需要iOS SDK   错误信息:The version of Xamarin.iOS requires th iOS 9.3 SDK (shipped with Xco ...

  4. Xamarin.iOS项目提示error MSB3174:”TargetFrameworkVersion”的值无效

    Xamarin.iOS项目提示error MSB3174:”TargetFrameworkVersion”的值无效 错误信息:MSBulid\14.0\bin\Microsoft.Common.Cur ...

  5. iOS富文本组件的实现—DTCoreText源码解析 数据篇

    本文转载 http://blog.cnbang.net/tech/2630/ DTCoreText是个开源的iOS富文本组件,它可以解析HTML与CSS最终用CoreText绘制出来,通常用于在一些需 ...

  6. iOS项目开发实战——自己定义圆形进度提示控件

    iOS中默认的进度条是水平方向的进度条,这往往不能满足我们的需求. 可是我们能够自己定义类似的圆形的进度提示控件,主要使用iOS中的画图机制来实现. 这里我们要实现一个通过button点击然后圆形进度 ...

  7. iOS MBProgressHUD 之带底板的加载提示

    文章来自:http://blog.csdn.net/ryantang03/article/details/7877120 MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单 ...

  8. 比JLRoutes更强大更好用的iOS开源路由框架—FFRouter

    目前iOS常用路由框架是JLRouter.HHRouter.MGJRouter. 但是这些路由库都各有不足,首先是JLRouter,用不到的功能繁多,而且基于遍历查找URL,效率低下.HHRouter ...

  9. iOS之UI组件整理

    作者:神兽gcc 授权本站转载. 最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现.其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起 ...

随机推荐

  1. 安装rails遇到的问题

    1 要安装js运行环境,例如Nodejs,如果使用nvm记得,安装完执行nvm use '版本号' 2 或者在Gemfile文件中加入: gem 'execjs'gem 'therubyracer'然 ...

  2. mac os安装macvim

    1 brew install macvim 安装 macvim 2 alias vim='/usr/local/Cellar/macvim/7.4-73_1/MacVim.app/Contents/M ...

  3. jQuery源代码学习_工具函数_type

    jquery源代码学习_工具函数_type jquery里面有一个很重要的工具函数,$.type函数用来判断类型,今天写这篇文章,是来回顾type函数的设计思想,深入理解. 首先来看一下最终结果: 上 ...

  4. The function getUserId must be used with a prefix when a default namespace is not specified 解决办法

    The function getUserId must be used with a prefix when a default namespace is not specified 解决方法: 1. ...

  5. JEECMS站群管理系统-- Jeecms项目导入myeclipse

    1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中 解压缩jeecms-3.0.2-final-src,在src文件夹下会看到有三 ...

  6. MySQL 8.0之后版本密码修改

    MySQL刚刚安装完毕时 mysqld --initialize grep password /var/log/mysqld.log 获取临时密码 mysql -uroot -p 输入临时密码登录My ...

  7. mapreduce总结

    一.mapreduce简介 MapReduce是一种分布式计算模型,是hadoop的核心组件之一,是Google提出的,主要用于搜索领域,解决海量数据的计算问题. MR有两个阶段组成:Map和Redu ...

  8. 网站架构:消息队列 Java后端架构

    2017-01-13  一.消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间 ...

  9. maven课程 项目管理利器-maven 4-1 使用maven创建web项目 5星

    本节主要讲了使用maven创建web项目 主要分这三大类: 1 新建maven  web项目 2 后续处理普通java项目转web项目需要关注的点 3 maven特色转web需要关注的点 1 新建ma ...

  10. Azure本月最新活动,速度Mark!

    桃花夭夭,渌水盈盈,就这样四月的脚步迫不及待地来了.为了帮助您能在第一时间了解 Azure 最新的活动,我们推出每月活动合集,你准备好了吗,一起来看吧! 立即访问http://market.azure ...