简介

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. [OpenStack] [Liberty] Neutron单网卡桥接模式访问外网

    环境配置: * Exsi一台 * Exsi创建的单网卡虚拟机一台 * Ubuntu 14LTS 64位操作系统 * OpenStack Liberty版本 * 使用Neutron网络而非Nova网络 ...

  2. Spark Streaming简介

    离线计算和实时计算对比 1)数据来源 离线:HDFS历史数据 数据量比较大 实时:消息队列(Kafka),实时新增/修改记录过来的某一笔数据 2)处理过程 离线:MapReduce: map+redu ...

  3. This blog Test the Open Live Writer

    1. We print HELLOWORLD when we first learned to code, I want to Write this blog to test the software ...

  4. git分支合并冲突

    合并冲突 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们. 如果你对 #53 问题的修改和有关 hotfix 的修改都涉及到同一个文件的同一处,在合并 ...

  5. 一个WPF小项目小结

    一:缘起 老板有做PC桌面客户端的需求,做的是能耗的计算和评估,要算能耗,就有很多环节,最后对这些环节数据进行一些简单计算.我想要是做的话就用比较熟的wpf,就去聊了下,对方给了1张比较复杂的Exce ...

  6. Java之美[从菜鸟到高手演变]之智力题【史上最全】 (转)

    原文地址:http://blog.csdn.net/zhangerqing/article/details/8138296 PS:在一次偶然的机会中,发现了这篇文章.希望大家能开动脑经. 智力题,每个 ...

  7. 关于使用Github,gitignore不起作用的解决方法

      直接上解决方法: 1 2 3 git rm -r --cached . git add . git commit -m 'update .gitignore' 解释: .gitignore文件,具 ...

  8. angular的多个模块执行 angular里 字符串与对象的互转

    1.disable : true ,禁用 2.$timeout 计时器 $interval.cancel(timer); 3.app.run();  可以不使用控制器就开启数据,但适合$rootsco ...

  9. Android @1x,@2x,@3x 资源文件自动分包工具

    version 1.2 1.修改不用输入扩展名 2.输出路径可选.默认会在输入路径下建文件夹 前沿: 现在开发中ios,android会使用一套图,但是ui设计师给的图命名是以@1x,@2x,@3x这 ...

  10. android studio gradle统一管理版本

    创建config.gradle ext { android = [ compileSdkVersion : 26, buildToolsVersion : "26.0.2", mi ...