# ZXMBProgressHUD **Repository Path**: zj1208/ZXMBProgressHUD ## Basic Information - **Project Name**: ZXMBProgressHUD - **Description**: MBProgressHUD分类。优点:window处理,其它二封的库普遍用keyWindow,其实会有bug,keyWindow有时候会被意外改变,导致无法展示HUD,或者无法移除HUD。2)做了loading防止重复加载处理。3) 支持iOS13 SDK的UIWindowScene;4) 配置了:显示loading的宽限时间,0.1s;5)支持线程安全。等 - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-10 - **Last Updated**: 2025-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 MBProgressHUD的二次封装。 此SDK的优点:\n1)window处理,其它二封的库普遍用keyWindow,其实会有bug,keyWindow有时候会被意外改变,导致无法展示HUD,或者无法移除HUD。\n2)做了loading防止重复加载处理,如果当前正在loading,新加载的loading直接用当前loading的UI,只修改文本。\n3) 支持iOS13 SDK的UIWindowScene;\n4) 配置了:显示loading的宽限时间,0.1s;\n5)支持toast展示时间根据文本长度动态计算。再配置最小显示持续时间1.5s;再限制最大展示时间6s;\n6)支持completionBlock隐藏移除时的block回调;有些业务需要隐藏后再处理其它事件。\n7)支持线程安全,即使子线程调用也会提交到主线程队列执行。 ## 如何使用 //pragma mark - ShowLoading /// 正在加载,HUD显示在window上 + (void)zx_showLoading; /// 正在加载,HUD显示在window上 /// @param text 文本,只支持展示一行 + (void)zx_showLoadingWithStatus:(nullable NSString *)text; /// 正在加载 /// @param text 文本,只支持展示一行 /// @param view 添加到的视图,支持window显示和自定义view显示,当view=nil,默认是window,显示在window上; + (void)zx_showLoadingWithStatus:(nullable NSString *)text toView:(nullable UIView *)view; //pragma mark - ShowSuccess /// 成功提示,默认添加在window上;会自动隐藏,默认根据文本内容长度设置时间隐藏; /// @param success 成功提示文本; + (void)zx_showSuccess:(nullable NSString *)success; /** 成功提示;会自动隐藏,默认根据文本内容长度设置时间隐藏; @param success 成功提示文本; @param view 所加的view层,当view=nil,默认是window; */ + (void)zx_showSuccess:(nullable NSString *)success toView:(nullable UIView *)view; + (void)zx_showSuccess:(nullable NSString *)success toView:(nullable UIView *)view completionBlock:(nullable MBProgressHUDCompletionBlock)completionBlock; + (void)zx_showSuccess:(nullable NSString *)success toView:(nullable UIView *)view hideAfterDelay:(NSTimeInterval)delay; + (void)zx_showSuccess:(nullable NSString *)success toView:(nullable UIView *)view hideAfterDelay:(NSTimeInterval)delay completionBlock:(nullable MBProgressHUDCompletionBlock)completionBlock; pragma mark - ShowError /// 失败提示,默认添加在window上;会自动隐藏,默认根据文本内容长度设置时间隐藏; /// @param error 失败提示文本 + (void)zx_showError:(nullable NSString *)error; /** 失败提示;会自动隐藏,默认根据文本内容长度设置时间隐藏; @param error 失败提示文本; @param view 所加的view层,如果传nil,默认window; */ + (void)zx_showError:(nullable NSString *)error toView:(nullable UIView *)view; + (void)zx_showError:(nullable NSString *)error toView:(nullable UIView *)view completionBlock:(nullable MBProgressHUDCompletionBlock)completionBlock; + (void)zx_showError:(nullable NSString *)error toView:(nullable UIView *)view hideAfterDelay:(NSTimeInterval)delay; + (void)zx_showError:(nullable NSString *)error toView:(nullable UIView *)view hideAfterDelay:(NSTimeInterval)delay completionBlock:(nullable MBProgressHUDCompletionBlock)completionBlock; pragma mark - hideHUD /// 移除window上的hud + (void)zx_hideHUD; /// 移除hud /// @param view HUD所在的指定视图 + (void)zx_hideHUDForView:(nullable UIView *)view; ## Author 海参, 879654715@qq.com ## License ZXCategories is available under the MIT license. See the LICENSE file for more info. ## Installation ```ruby pod 'ZXMBProgressHUD' ``` ## Example ![输入图片说明](Example/1.png) ## 命令 $ pod lib lint --allow-warnings --no-clean --verbose $ pod repo push gitee-zj1208 ZXMBProgressHUD.podspec --allow-warnings --verbose 注意:在XCode15之后遇到报错 SDK does not contain ‘libarclite‘;Returned an unsuccessful exit code。无法pod lib lint通过。 原因:在xcode15之后,移除了iOS12之前的‘libarclite‘库,所以默认必须iOS12以上,且不能包含目标版本iOS12以下的库,才能在真机和模拟器运行,不然缺少库无法运行。 解决方案: 1.按照步骤补齐‘libarclite‘才能验证通过。因为MBProgressHUD依然兼容老版本iOS 9.0,所以没办法。 解决方案:https://github.com/SD19767/arc/tree/main 2.修改二个地方: 1)platform :ios,'12.0' 2)下面的; post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' end end end 3)M芯片模拟器默认是arm64;非M芯片模拟器(Rosetta转换的模拟器(转成X86_64模拟器)),需要去除arm64。 ## 更新记录 v0.1.2 1.新增最前面的window是否是指定4个; v0.1.3 1.增加demo界面; 2.增加设置loading宽限时间0.1s;修改showLoadin的方法。 3.内部代码优化,图标参数。 v0.1.4 2023-09-01 1.增加支持线程安全,修改api方法 v0.1.6 1.解决库在Xcode15之后,M芯片下。无法通过pod lib lint的问题。 v0.1.7 2024-08-10 1.兼容iOS13之后弃用的api警告。