您的位置:首页 > 移动开发 > IOS开发

SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件

2015-09-15 16:03 661 查看

简介



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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: