前言
SVProgressHUD 是对提示框的一个封装库,里面的方法都是类方法,并且对象是通过单例创建。由于方法都是通过类名调用,简单明了。
基本方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| + (void)show; 显示:状态是一个迅速转动的圈 + (void)showWithMaskType:(SVProgressHUDMaskType)maskType; 显示并且带着一个状态 + (void)showWithStatus:(NSString*)status; 显示并且带着文字 + (void)showWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType; + (void)showProgress:(float)progress; //显示进度:状态是一个进度圈 + (void)showProgress:(float)progress maskType:(SVProgressHUDMaskType)maskType; + (void)showProgress:(float)progress status:(NSString*)status; + (void)showProgress:(float)progress status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType; + (void)setStatus:(NSString*)string; // 改变正显示着的HUD的文字 // stops the activity indicator, shows a glyph + status, and dismisses HUD a little bit later + (void)showInfoWithStatus:(NSString *)string; //显示消息信息,其实就是中心图片更换了 + (void)showInfoWithStatus:(NSString *)string maskType:(SVProgressHUDMaskType)maskType; + (void)showSuccessWithStatus:(NSString*)string; //显示成功消息 + (void)showSuccessWithStatus:(NSString*)string maskType:(SVProgressHUDMaskType)maskType; + (void)showErrorWithStatus:(NSString *)string; //显示错误消息 + (void)showErrorWithStatus:(NSString *)string maskType:(SVProgressHUDMaskType)maskType; // use 28x28 white pngs + (void)showImage:(UIImage*)image status:(NSString*)status; //显示自己设置的图片,图片大小事28 * 28 px + (void)showImage:(UIImage*)image status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType; + (void)setOffsetFromCenter:(UIOffset)offset; //距离中心点的偏移量 + (void)resetOffsetFromCenter; //返回中心点 + (void)popActivity; // 消除一个HUD,根据其实现方法如果前面有执行了好几次show方法,如果给定的progress == 0 或者 pregress < 0那样就会让使一个参数+1,执行这个方法会使那个参数-1,如果参数==0时 执行dismiss方法。 + (void)dismiss; 消失 + (BOOL)isVisible; 是否正在显示
|
关于HUD的属性配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| // 背景颜色 + (void)setBackgroundColor:(UIColor*)color; // default is [UIColor whiteColor]
// progress 和 label颜色 + (void)setForegroundColor:(UIColor*)color; // default is [UIColor blackColor] // progress 宽度 + (void)setRingThickness:(CGFloat)width; // default is 4 pt
// 字体 + (void)setFont:(UIFont*)font; // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
// 消息的图片 + (void)setInfoImage:(UIImage*)image; // default is the bundled info image provided by Freepik
// 成功时的图片 + (void)setSuccessImage:(UIImage*)image; // default is the bundled success image provided by Freepik
// 失败时的图片 + (void)setErrorImage:(UIImage*)image; // default is the bundled error image provided by Freepik
// 当HUD显示时,用户是否可以点击其他控件 + (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType; // default is SVProgressHUDMaskTypeNone SVProgressHUDMaskTypeNone = 1, // 允许用户进行其他用户操作 SVProgressHUDMaskTypeClear, // 不允许用户进行其他用户操作 SVProgressHUDMaskTypeBlack, // 不允许用户进行其他用户操作,并且背景是黑色的 SVProgressHUDMaskTypeGradient // 允许用户进行其他用户操作,并且背景是渐变的黑色 // 可以延展一个图片必须设置 + (void)setViewForExtension:(UIView*)view;
|
关于HUD的通知
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| // 在HUD外点击 extern NSString * const SVProgressHUDDidReceiveTouchEventNotification;
// 在HUD中点击 extern NSString * const SVProgressHUDDidTouchDownInsideNotification;
// 将要显示 extern NSString * const SVProgressHUDWillDisappearNotification;
// 已经显示 extern NSString * const SVProgressHUDDidDisappearNotification;
// 将要消失 extern NSString * const SVProgressHUDWillAppearNotification;
// 已经消失 extern NSString * const SVProgressHUDDidAppearNotification;
// HUD的状态 extern NSString * const SVProgressHUDStatusUserInfoKey;
|
在通知中 userInfo
字典中存储了 HUD
的状态,其 key
为 SVProgressHUDStatusUserInfoKey
使用
- 在Podfile中安装
1
| #import "SVProgressHUD.h"
|
- SVProgressHUD弹窗
- SVProgressHUD可以显示一直旋转的进度条:
1 2 3 4
| // 显示一直旋转的进度条 + (void)show; // 显示一直旋转的进度条和状态 + (void)showWithStatus:(nullable NSString*)status;
|
- SVProgressHUD可以显示具体进度的进度条。
1 2 3 4
| // 显示进度条,progress为 0~1 + (void)showProgress:(float)progress; // 显示进度条和状态 + (void)showProgress:(float)progress status:(nullable NSString*)status;
|
1 2 3 4 5 6 7 8 9
| // 显示消息图标和状态 + (void)showInfoWithStatus:(nullable NSString*)status; // 显示成功图标和状态 + (void)showSuccessWithStatus:(nullable NSString*)status; // 显示错误图标和状态 + (void)showErrorWithStatus:(nullable NSString*)status; // 显示自定义图标和状态 + (void)showImage:(nonnull UIImage*)image status:(nullable NSString*)status;
|
1 2 3 4 5 6 7 8 9
| // 关闭弹窗 + (void)dismiss; // 关闭弹窗,并执行completion + (void)dismissWithCompletion:(nullable SVProgressHUDDismissCompletion)completion; // 延迟关闭弹窗 + (void)dismissWithDelay:(NSTimeInterval)delay; // 延迟关闭弹窗,并执行completion + (void)dismissWithDelay:(NSTimeInterval)delay completion:(nullable SVProgressHUDDismissCompletion)completion;
|
- 主要方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| // 提示框背景和文字,默认是SVProgressHUDStyleLight + (void)setDefaultStyle:(SVProgressHUDStyle)style; // 背景图层,默认SVProgressHUDMaskTypeNone + (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType; // 设置进度条样式,默认SVProgressHUDAnimationTypeFlat + (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type;
// 提示框文字颜色,默认黑色,只在style为SVProgressHUDStyleCustom有效 + (void)setForegroundColor:(nonnull UIColor*)color; // 提示框背景颜色,默认白色,只在style为SVProgressHUDStyleCustom有效 + (void)setBackgroundColor:(nonnull UIColor*)color; // 背景图层,默认半透明,只在style为SVProgressHUDStyleCustom有效 + (void)setBackgroundLayerColor:(nonnull UIColor*)color;
// 状态字体,默认[UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] + (void)setFont:(nonnull UIFont*)font; // 提示框的边角弯曲半径,默认14pt + (void)setCornerRadius:(CGFloat)cornerRadius; // 转圈宽度,默认2pt + (void)setRingThickness:(CGFloat)ringThickness; // 转圈半径,默认18pt + (void)setRingRadius:(CGFloat)radius; // 没有文字时的转圈半径,默认24pt + (void)setRingNoTextRadius:(CGFloat)radius;
// 设置消息图片 + (void)setInfoImage:(nonnull UIImage*)image; // 设置成功图片 + (void)setSuccessImage:(nonnull UIImage*)image; // 设置错误图片 + (void)setErrorImage:(nonnull UIImage*)image; // 设置图片大小,默认28x28pt + (void)setImageViewSize:(CGSize)size;
|
- SVProgressHUDStyle定义提示框背景和文字
1 2 3 4 5 6
| typedef NS_ENUM(NSInteger, SVProgressHUDStyle) { SVProgressHUDStyleLight, // 默认类型,白色半透明背景,黑色字体 SVProgressHUDStyleDark, // 黑色背景,白色字体 SVProgressHUDStyleCustom // 白色背景,黑色字体 };
|
- SVProgressHUDMaskType定义背景图层
1 2 3 4 5 6 7 8
| typedef NS_ENUM(NSUInteger, SVProgressHUDMaskType) { SVProgressHUDMaskTypeNone = 1, // 默认类型,允许与后面界面交互 SVProgressHUDMaskTypeClear, // 不允许与后面界面交互 SVProgressHUDMaskTypeBlack, // 不允许与后面界面交互,背景图层为半透明 SVProgressHUDMaskTypeGradient, // 不允许与后面界面交互,背景图层为渐变变化 SVProgressHUDMaskTypeCustom // 不允许与后面界面交互,背景图层为自定义 };
|
- SVProgressHUDAnimationType是转圈样式
1 2 3 4 5
| typedef NS_ENUM(NSUInteger, SVProgressHUDAnimationType) { SVProgressHUDAnimationTypeFlat, // 默认转圈样式 SVProgressHUDAnimationTypeNative // 菊花型转圈样式 };
|
- SVProgressHUD通知
1 2 3 4 5 6 7 8 9 10
| // 提示框即将出现 NSString * const SVProgressHUDWillAppearNotification = @"SVProgressHUDWillAppearNotification"; // 提示框已经出现 NSString * const SVProgressHUDDidAppearNotification = @"SVProgressHUDDidAppearNotification";
// 提示框即将消失 NSString * const SVProgressHUDWillDisappearNotification = @"SVProgressHUDWillDisappearNotification"; // 提示框已经消失 NSString * const SVProgressHUDDidDisappearNotification = @"SVProgressHUDDidDisappearNotification";
|