iOS 知识点

基于 MBProgressHUD 封装的扩展

2017-06-07  本文已影响147人  Swift研习室

MBProgressHUD+WJExtension

GitHub 地址:https://github.com/WJCha/MBProgressHUD-WJExtension

基于 MBProgressHUD 的封装,方便使用,并增加了操作成功与失败的HUD动画。

效果演示

使用过程中可以不显示下方的文字。比如加载进度条,可以不显示文字信息,只显示加载控件。Demo 只是其中的一个演示而已。主要方法请参考MBProgressHUD+WJExtension.h头文件

demo.gif

安装

开始使用

#import "MBProgressHUD+WJExtension.h"

加载进度的HUD使用说明

以开扇型类型的加载进度为例:

可使用的方法列表如下:

/**
 扇形饼状加载进度
 
 @return MBProgressHUD对象,可以通过它调用MBProgressHUD中的方法
 */
+ (instancetype)wj_showDeterminateLoading:(nullable NSString *)message
                                   toView:(nullable UIView *)view;

/**
 只显示扇形饼状加载进度指示器,不显示文本消息

 @return MBProgressHUD对象,可以通过它调用MBProgressHUD中的方法
 */
+ (instancetype)wj_showDeterminateLoading;

/**
 加载进度的HUD,设置HUD的progress请通过 HUD 对象调用 showAnimated: whileExecutingBlock: 等方法
 
 @param style 进度条样式(横条、环形、开扇型三种)
 @param message 消息正文,传nil不显示
 @param view 展示的View
 @return MBProgressHUD对象,可以通过它调用MBProgressHUD中的方法
 */
+ (instancetype)wj_showLoadingStyle:(WJHUDLoadingProgressStyle)style
                            message:(nullable NSString *)message
                             toView:(nullable UIView *)view;

+ (instancetype)wj_showLoadingStyle:(WJHUDLoadingProgressStyle)style toView:(nullable UIView *)view;

+ (instancetype)wj_showLoadingStyle:(WJHUDLoadingProgressStyle)style;

可以注意到,每个方法的调用都会将 MBProgressHUD对象返回出来。我们可以通过返回回来的对象去调用 MBProgressHUD 中的属性。比如 progress,以便我们去设置加载进度....。如以下举例:

// 展示HUD
MBProgressHUD *hud = [MBProgressHUD wj_showLoadingStyle:WJHUDLoadingProgressStyleDeterminate message:@"正在加载..." toView:nil];
        
        // 在获取到进度信息的地方设置HUD的progress,这里只是一个模拟
        [hud showAnimated:YES whileExecutingBlock:^{
            float progress = 0.0f;
            while (progress < 1.0f) {
                hud.progress = progress;
                hud.labelText = [NSString stringWithFormat:@"正在加载...%.0f%%", progress * 100];
                progress += 0.01f;
                usleep(50000);
            }
        } completionBlock:^{
            [MBProgressHUD wj_hideHUD];
        }];

自定义View须知

本扩展是基于 MBProgressHUD封装,自定义的View指的是如下图中的红框部分。自定义的View将显示在红框那个位置

Snip20170607_2.png
上一篇 下一篇

猜你喜欢

热点阅读