我为什么要对MBProgressHUD进行二次封装?今年新找的这份工作,项目的创建的时间比较早了,2014年创建的项目,项目中现在使用的一些操作提示,既然还是我刚开始从事iOS开发工作的时候就用到的开源的第三方toast。可以说这个开源库的年龄比我的工作年龄都长了,现在早都过时了,而且它的样式不好看,跟MBProgressHUD差远了。所以决定对MBProgressHUD进行二次封装,产出demo,决心说服产品进行替换。
XBLoadingKit主要封装了常用的几种提示,包括成功、失败、警告、loading、长文本消息。
- (void)showOperationHudWithStatus:(TipStatus)tipStatus{ switch (tipStatus) { case operation_success_status: [MBProgressHUD showSuccess:@"操作成功的提示" toView:self.view]; //成功的提示 break; case operation_fail_status: [MBProgressHUD showError:@"操作失败的提示" toView:self.view]; //失败提示 break; case operation_warning_status: [MBProgressHUD showWarning:@"操作遇到了警告" toView:self.view]; //警告提示 break; default: break; } } //网络加载时的loading - (void)networkLoading{ [MBProgressHUD showMessage:@"loading..." toView:self.view]; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 5 * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ // Do something... [MBProgressHUD hideHUDForView:self.view animated:YES]; }); } //显示长文本提示 - (void)showLongMessage{ [MBProgressHUD showDetailMessage:@"寂寞空庭春欲晚,梨花满地不开门,昨夜雨疏风骤" toView:self.view delay:2.0]; }
XBLoadingKit提供了两种样式。
/** hud的样式 - gray_background_style: 灰色背景 - dim_background_style: 黑色背景 */ typedef NS_ENUM(NSInteger, CustomHudStyle) { gray_background_style = 0, dim_background_style, };
如果不进行设置,默认使用的是灰色背景。
可以通过LoadingStyleManager
这个类提供的方法进行样式的修改,提示hud的显示时长的修改。
修改样式的代码示例:
[[LoadingStyleManager sharedInstance] setHudStyle:dim_background_style];
提示显示的时长默认是2s,可以自己根据需要进行修改。
修改提示显示的时长:
[[LoadingStyleManager sharedInstance] setHudDelayTime:1.5]; //设置提示显示的时长
效果展示:
提示所使用的三个图标都放在了resource目录下,是从之前的项目中找出来的,只有**@2x图标,有需要使用的同学,请找设计师生成对应的@3x**图标。
如果需要使用其他样式的提示,请根据MBProgressHUD的demo自己进行封装。
demo传送门,欢迎下载使用,提出意见。