SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件
2015-09-15 15:56
686 查看
简介
SVProgressHUD是简单易用的显示器,用于指示一个持续进行的任务的进度.
项目主页: 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
相关文章推荐
- iOS 定位精度
- ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收
- iOS学习资源搜集
- IOS开发+(void)load与+(void)initialize区别
- Crashlytics——iOS crash log 解析利器
- ios 线程安全单例写法
- 【投稿】iOS蓝牙开发(一)蓝牙相关基础知识
- iOS runtime方法详解之添加类
- IOS贝塞尔曲线圆形进度条和加载动画
- ios 关于scrollview内空间位置与想象不符的解决办法
- iOS设置分割线从边框顶端开始
- ios 读取图片
- VMware虚拟机 停电 无法启动
- iOS开发的一些奇巧淫技
- iOS地图适配
- iOS数据持久化(三)
- ios 将时间戳转换成标准时间
- iOS & Mac JSON To Model
- iOS & Mac JSON To Model
- 自定义iOS7导航栏背景,标题和返回按钮文字颜色