MBProgressHUD 的定制化封装

基于 MBProgressHUD 的定制化封装,
使用方便、快捷,可能完全定制你自己需要的风格,支持链式语法;
产品需求变幻莫测,昨天还是要白色的提示框风格,今天就变成了黑色或者其它颜色,出现位置要在上面/下面,这时你使用这个类扩展完全能满足你的需求;

本库的特点:

  • 显示位置自定制(默认是在中间);
  • 文字颜色自定制,也可能一劳永逸设置全局属性;
  • 加载进度条多种风格,进度条颜色可自定制;
  • 持续显示时间一键设置,也可自定义单条的持续时间;
  • 背景蒙版:要或者不要,背景颜色;
  • 支持链式语法;
  • 项目中难免会有几个界面的提示框需求特别,这时你可以使用链式语法来全方面的定制风格;

<br />

全局配置:
MBProgressHUD+NHAdd.h

注意点:

1,所有类方法中有返回本类的,则不会自动消失,返回值为void的都会自动消失(默认值:delayTime)
2,蒙层默认为清除色,给hudBackgroundColor设置颜色就会自动有

/

//持续显示时间设置(默认1.2s):
UIKIT_EXTERN CGFloat const delayTime;

/

/**设置默认的风格:默认为淡灰白色背景 = 0,文字及加载图颜色为黑色

  • NHHUDContentDefaultStyle = 0,//默认是白底黑字 Default
  • NHHUDContentBlackStyle = 1,//黑底白字
  • NHHUDContentCustomStyle = 2,
    */
    如果你的项目大部份需要的是“黑底白字”风格,那么你将下属性改成1,如果0和1都不是,那么请‘NHDefaultHudStyle’设置为2,并同时设置下面两个颜色属性宏:NHCustomHudStyleBackgrandColor 、 NHCustomHudStyleContentColor
    /#define NHDefaultHudStyle 1

/

风格为自定义时(NHHUDContentCustomStyle),在这里设置颜色
//背景颜色
#define NHCustomHudStyleBackgrandColor [UIColor colorWithWhite:0.f alpha:0.7f]
// 文字、加载图、进度条颜色
#define NHCustomHudStyleContentColor [UIColor colorWithWhite:1.f alpha:0.7f]

//内容风格
typedef NS_ENUM(NSInteger, NHHUDContentStyle) {
    NHHUDContentDefaultStyle = 0,//默认是白底黑字 Default
    NHHUDContentBlackStyle = 1,//黑底白字
    NHHUDContentCustomStyle = 2,//:自定义风格<由自己设置自定义风格的颜色>
};

//显示位置
typedef NS_ENUM(NSInteger, NHHUDPostion) {
    NHHUDPostionTop,//上面
    NHHUDPostionCenten,//中间
    NHHUDPostionBottom,//下面
};

//进度条类型
typedef NS_ENUM(NSInteger, NHHUDProgressStyle) {
    NHHUDProgressDeterminate,///双圆环,进度环包在内
    NHHUDProgressDeterminateHorizontalBar,///横向Bar的进度条
    NHHUDProgressAnnularDeterminate,///双圆环,完全重合
    NHHUDProgressCancelationDeterminate,///带取消按钮 - 双圆环 - 完全重合
};
未命名.gif
示例方法
/**
 纯加载图
 */
+ (MBProgressHUD *)showOnlyLoadToView:(UIView *)view;

/**
 纯文字
 */
+ (void)showOnlyTextToView:(UIView *)view title:(NSString *)title;

/**
 *  成功提示 - 自动消失,带默认成功图
 *
 *  @param success 要显示的文字
 */
+ (void)showSuccess:(NSString *)success toView:(UIView *)view;

/**
 *  错误提示 - 自动消失, 带默认错误图
 *
 *  @param error 要显示的错误文字
 */
+ (void)showError:(NSString *)error toView:(UIView *)view;

/**
 纯文字+自定位置(上、中、下) - 自动消失
 @param postion 位置:上、中、下
 */
+ (void)showTitleToView:(UIView *)view postion:(NHHUDPostion)postion title:(NSString *)title;

/**
 纯文字+自定背景风格 - 自动消失
 
 @param contentStyle 背景风格:白、黑
 */
+ (void)showTitleToView:(UIView *)view contentStyle:(NHHUDContentStyle)contentStyle title:(NSString *)title;


/**
 纯标题 + 详情 + 自定背景风格 - 自动消失
 
 @param contentStyle 背景风格:白、黑
 */
+ (void)showDetailToView:(UIView *)view contentStyle:(NHHUDContentStyle)contentStyle title:(NSString *)title detail:(NSString *)detail;


/**
 纯文字+自定位置、风格 - 自动消失
 
 @param postion 位置
 @param contentStyle 风格
 */
+ (void)showTitleToView:(UIView *)view
                postion:(NHHUDPostion)postion
           contentStyle:(NHHUDContentStyle)contentStyle
                  title:(NSString *)title;


/**
 文字+加载图
 */
+ (MBProgressHUD *)showLoadToView:(UIView *)view title:(NSString *)title;



/**
 纯文字+自定位置 x秒后自动消失
 
 @param delay 延迟消失时间
 */
+ (void)showTitleToView:(UIView *)view
           contentStyle:(NHHUDContentStyle)contentStyle
                  title:(NSString *)title
             afterDelay:(NSTimeInterval)delay;


/**
 文字 + 进度条
 
 @param progressStyle 进度条风格
 @param progress 当前进度值
 */
+ (MBProgressHUD *)showDownToView:(UIView *)view
                    progressStyle:(NHHUDProgressStyle)progressStyle
                            title:(NSString *)title
                         progress:(NHCurrentHud)progress;


/**
 文字 + 进度条 + 取消按钮
 
 @param progressStyle 进度条风格
 @param progress 当前进度值
 @param cancelTitle 取消按钮名称
 @param cancelation 取消按钮的点击事件
 */
+ (MBProgressHUD *)showCancelationToView:(UIView *)view
                           progressStyle:(NHHUDProgressStyle)progressStyle
                                   title:(NSString *)title
                             cancelTitle:(NSString *)cancelTitle
                                progress:(NHCurrentHud)progress
                             cancelation:(NHCancelation)cancelation;


/**
 文字 + 自定图片
 @param image 图片
 */
+ (void)showCustomView:(UIImage *)image toView:(UIView *)toView title:(NSString *)title;


/**
 文字 + 默认加载图 + 自定朦胧层背景色
 
 @param backgroundColor 自定背景色
 */
+ (MBProgressHUD *)showLoadToView:(UIView *)view backgroundColor:(UIColor *)backgroundColor title:(NSString *)title;


/**
 文字 + 默认加载图 + 自定文字、加载图颜色
 
 @param contentColor 自定文字、加载图颜色
 */
+ (MBProgressHUD *)showLoadToView:(UIView *)view contentColor:(UIColor *)contentColor title:(NSString *)title;

使用方法示例:

//只有文字,显示位置在下面
[MBProgressHUD showTitleToView:self.view postion:NHHUDPostionBottom title:_listTitle[row]];

//只有文字,显示位置在上面,黑色风格
[MBProgressHUD showTitleToView:self.navigationController.view postion:NHHUDPostionTop contentStyle:NHHUDContentBlackStyle title:_listTitle[row]];

//带取消按钮的下载进度提示
[MBProgressHUD showCancelationToView:self.view progressStyle:NHHUDProgressDeterminate title:_listTitle[row] cancelTitle:@"cancel" progress:^(MBProgressHUD *hud) {
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
                    // Do something 
                    //[hud hideAnimated:YES];
            } cancelation:^(MBProgressHUD *hud) {
                   // Do something 
            }];
            
//自定义图片
[MBProgressHUD showCustomView:[[UIImage imageNamed:@"Checkmark"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]
                                   toView:self.view
                                    title:@"Done"];
                                    
//自定制NSProgress
NSProgress *progressObject = [NSProgress progressWithTotalUnitCount:100];
[MBProgressHUD  showDeterminateWithNSProgress:progressObject toView:self.view title:_listTitle[16] hudBlock:^(MBProgressHUD *hud) {
                dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
                    // Do something 
                    // [hud hideAnimated:YES];
            }];
            
//使用链式语法完全定制
[MBProgressHUD createHudToView:self.navigationController.view title:_listTitle[row] configHud:^(MBProgressHUD *hud) {
                hud.title(@"new title");
                hud.contentColor = [UIColor yellowColor];
                hud.titleColor(UIColor.redColor);
                hud.bezelBackgroundColor(UIColor.greenColor);
                hud.hudBackgroundColor([[UIColor blueColor] colorWithAlphaComponent:0.2]);
            }];

传送门:https://github.com/neghao/NHHUDExtend

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,066评论 4 62
  • 昨天去找了一个高中同学,印象中,她是一个写字很好看,唱歌很好听 很喜欢写一些文艺小清新的很好看的女生,我很喜欢她。...
    小满心欢喜阅读 1,178评论 8 5
  • 夫人: 当你看到这封信的时候,我们可能真的要结婚了,甚至可能跳过订婚直接结婚。 昨天我哥给我打电话,说不行我们过年...
    晓晓石头阅读 109评论 0 0
  • 没有什么是轻松的,走路的人跑起来感觉很不舒服,坐着人要他走会很不舒服,躺着的人要转动一个方位也感觉累。忙人有忙的累...
    MichaelShu阅读 256评论 0 0
  • 我不是完美小孩 文/李沐遥 没等过完今天,就已开始想念 每一个成为昨天的从前 蜡烛还未点燃,夜色已阑...
    李沐遥阅读 378评论 0 2