73 lines
2.8 KiB
Objective-C
73 lines
2.8 KiB
Objective-C
//
|
||
// KBHUD.h
|
||
// keyBoard
|
||
//
|
||
// 基于 MBProgressHUD 的轻量封装,提供类似 SVProgressHUD 的类方法调用方式。
|
||
// 特性:
|
||
// - 默认加到 KeyWindow 上
|
||
// - 支持遮罩模式(不拦截/透明拦截/半透明黑遮罩)
|
||
// - 默认不支持点击背景关闭;可为“本次显示/当前 HUD”开启点击关闭
|
||
// - 文案/加载/进度/自动消失
|
||
//
|
||
|
||
#import <Foundation/Foundation.h>
|
||
@class UIView; // forward declare to avoid importing UIKit in header
|
||
|
||
typedef NS_ENUM(NSUInteger, KBHUDMaskType) {
|
||
/// 不加遮罩,事件可透传到后面的视图(与 SVProgressHUDMaskTypeNone 类似)
|
||
KBHUDMaskTypeNone = 0,
|
||
/// 透明遮罩,拦截触摸但不变暗(与 SVProgressHUDMaskTypeClear 类似)
|
||
KBHUDMaskTypeClear,
|
||
/// 半透明黑色遮罩(与 SVProgressHUDMaskTypeBlack 类似)
|
||
KBHUDMaskTypeBlack,
|
||
};
|
||
|
||
NS_ASSUME_NONNULL_BEGIN
|
||
|
||
@interface KBHUD : NSObject
|
||
|
||
#pragma mark - 显示
|
||
/// 纯菊花
|
||
+ (void)show;
|
||
/// 菊花 + 文案
|
||
+ (void)showWithStatus:(nullable NSString *)status;
|
||
/// 菊花 + 文案(可配置:是否允许点击背景关闭)
|
||
+ (void)showWithStatus:(nullable NSString *)status allowTapToDismiss:(BOOL)allow;
|
||
/// 圆形进度 0~1 + 文案
|
||
+ (void)showProgress:(float)progress status:(nullable NSString *)status;
|
||
/// 圆形进度 0~1 + 文案(可配置:是否允许点击背景关闭)
|
||
+ (void)showProgress:(float)progress status:(nullable NSString *)status allowTapToDismiss:(BOOL)allow;
|
||
/// 文案提示(自动隐藏)
|
||
+ (void)showInfo:(NSString *)status;
|
||
/// 成功提示(自动隐藏)
|
||
+ (void)showSuccess:(NSString *)status;
|
||
/// 失败提示(自动隐藏)
|
||
+ (void)showError:(NSString *)status;
|
||
|
||
#pragma mark - 隐藏
|
||
/// 立即隐藏
|
||
+ (void)dismiss;
|
||
/// 延时隐藏
|
||
+ (void)dismissWithDelay:(NSTimeInterval)delay;
|
||
|
||
#pragma mark - 配置(全局)
|
||
/// 设置默认遮罩类型,默认 KBHUDMaskTypeClear
|
||
+ (void)setDefaultMaskType:(KBHUDMaskType)maskType;
|
||
/// 为“当前正在展示的 HUD”设置点击背景是否关闭;若当前没有 HUD 则忽略
|
||
+ (void)setTapToDismissEnabled:(BOOL)enabled;
|
||
/// 仅本次显示:菊花(无文案)可配置是否允许点击背景关闭
|
||
+ (void)showAllowTapToDismiss:(BOOL)allow;
|
||
/// 设置自动隐藏的时长(success/error/info),默认 1.2s
|
||
+ (void)setAutoDismissInterval:(NSTimeInterval)interval;
|
||
|
||
/// 设置缺省承载视图(App Extension 环境下必须设置,例如在键盘扩展里传入 self.view)
|
||
/// 注意:内部弱引用,不会形成循环引用。
|
||
/// 若不设置,在非 Extension 的 App 内默认加到 KeyWindow;在 Extension 内将不会显示。
|
||
/// 可在 viewDidLoad 或 viewDidAppear 调用一次即可。
|
||
/// @param view 作为 HUD 的承载父视图
|
||
+ (void)setContainerView:(nullable UIView *)view;
|
||
|
||
@end
|
||
|
||
NS_ASSUME_NONNULL_END
|