SVProgressHUD-FE 2.0.1

SVProgressHUD-FE 2.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2017年2月

wzf 维护。



  • 作者:
  • Jeff

SVProgressHUD

SVProgressHUD 是一个干净、易于使用的 HUD,用于显示 iOS 和 tvOS 上的任务进度。

SVProgressHUD

演示

Appetize.io 上尝试 SVProgressHUD

安装

手动安装

  • SVProgressHUD/SVProgressHUD 文件夹拖到您的项目中。
  • 注意将 SVProgressHUD.bundle 添加到 Projects -> Build Phases -> Copy Bundle Resources
  • QuartzCore 框架添加到您的项目中。

使用方法

(请参考 /Demo 目录中的 Xcode 示例项目)

SVProgressHUD 被创建为单例(即不需要显式分配和实例化;您可以直接调用 [SVProgressHUD method])。

明智地使用 SVProgressHUD!只有当您绝对需要在用户前进之前执行任务时才使用它。错误的用例示例:下拉刷新、无限滚动、发送消息。

在您的应用中使用 SVProgressHUD 通常如下所示(使用 Grand Central Dispatch)

[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

您可以使用以下方式显示不确定任务的状态

+ (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;

popActivity 调用的数量与显示调用相匹配时,HUD 将关闭。

或者在关闭前先显示一个确认图标。显示时间取决于给定字符串的长度(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;                  // default is SVProgressHUDStyleLight
+ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType;         // default is SVProgressHUDMaskTypeNone
+ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type;   // default is SVProgressHUDAnimationTypeFlat
+ (void)setMinimumSize:(CGSize)minimumSize;                         // default is CGSizeZero, can be used to avoid resizing for a larger message
+ (void)setRingThickness:(CGFloat)width;                            // default is 2 pt
+ (void)setRingRadius:(CGFloat)radius;                              // default is 18 pt
+ (void)setRingNoTextRadius:(CGFloat)radius;                        // default is 24 pt
+ (void)setCornerRadius:(CGFloat)cornerRadius;                      // default is 14 pt
+ (void)setFont:(UIFont*)font;                                      // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
+ (void)setForegroundColor:(UIColor*)color;                         // default is [UIColor blackColor], only used for SVProgressHUDStyleCustom
+ (void)setBackgroundColor:(UIColor*)color;                         // default is [UIColor whiteColor], only used for SVProgressHUDStyleCustom
+ (void)setInfoImage:(UIImage*)image;                               // default is the bundled info image provided by Freepik
+ (void)setSuccessImage:(UIImage*)image;                            // default is bundled success image from Freepik
+ (void)setErrorImage:(UIImage*)image;                              // default is bundled error image from Freepik
+ (void)setViewForExtension:(UIView*)view;                          // default is nil, only used if #define SV_APP_EXTENSIONS is set
+ (void)setMinimumDismissTimeInterval:(NSTimeInterval)interval;     // default is 5.0 seconds

此外,SVProgressHUD 支持大多数上述方法的 UIAppearance 协议。

提示

作为标准,SVProgressHUD 提供了两种预先配置的样式

  • SVProgressHUDStyleLight: 白背景,黑色旋转进度条和文字
  • SVProgressHUDStyleDark: 黑背景,白色旋转进度条和文字

如果想要使用自定义颜色并通过 setForegroundColorsetBackgroundColor: 来设置,记得通过 setDefaultStyle: 设置 SVProgressHUDStyleCustom

通知

SVProgressHUD 在显示/消失动画时通过 NSNotificationCenter 发布四个通知

  • SVProgressHUDWillAppearNotification 在显示动画开始时触发
  • SVProgressHUDDidAppearNotification 在显示动画完成时触发
  • SVProgressHUDWillDisappearNotification 在消失动画开始时触发
  • SVProgressHUDDidDisappearNotification 在消失动画完成时触发

每个通知都会传递一个包含 HUD 状态字符串(如果有)的 userInfo 字典,可以通过 SVProgressHUDStatusUserInfoKey 来检索。

SVProgressHUD 还会发布 SVProgressHUDDidReceiveTouchEventNotification,当用户触摸整个屏幕时触发,或者发布 SVProgressHUDDidTouchDownInsideNotification,当用户直接触摸 HUD 时触发。对于这些通知,不传递 userInfo,但对象参数包含了与触摸相关的 UIEvent

应用扩展

当在应用扩展中使用 SVProgressHUD 时,使用 #define SV_APP_EXTENSIONS 以避免使用不可用的 API。另外,从你的扩展视图控制器调用 setViewForExtension: 并传入 self.view

为这个项目做出贡献

如果你有功能请求或错误报告,请通过发送拉取请求或者创建新问题来帮忙。请花点时间审阅由Nicolas Gallagher编写的指导方针。

版权信息

SVProgressHUDSam Vermette项目的贡献者提供。如果你的项目中使用了 SVProgressHUD,那么给出致谢将是非常受欢迎的。成功、错误和信息图标由 Freepik 提供,其来自 Flaticon,并受 Creative Commons BY 3.0 许可。