美文网首页
mbprogresshud的二次封装

mbprogresshud的二次封装

作者: 晨曦晴天 | 来源:发表于2017-01-16 17:29 被阅读0次

mbprogresshud 是一款非常方便hud视图 称为弹框 虽然方便 但是我们开发者实在不能容忍每次写一个弹框 都要写那么多代码 于是我觉得 来一份mbprogresshud的小小的封装

新建一个nsobject的类

.h 这样 一个属性hud的属性 2个实例方法 和一些类方法


@property(nonatomic,strong)MBProgressHUD*hud;

-(void)starProgresshud;

-(void)stopProgresshud;

// 加载弹框

+(void)ShowDoProgressAfterTime:(NSTimeInterval)time;

// 默认文本弹框

+(void)showNomorText:(NSString*)text AfterTime:(NSTimeInterval)time;

// 文本显示弹框(黑色)

+(void)showText:(NSString*)text AfterTime:(NSTimeInterval)time;

// 圆环形状弹框

+(void)showRotundityAfterTime:(NSTimeInterval)time;

// 错误信息提示弹框

+(void)showError:(NSString*)text AfterTime:(NSTimeInterval)time errorimage:(UIImage*)image;

// 正确信息提示

+(void)showSuccess:(NSString*)text AfterTime:(NSTimeInterval)time successimage:(UIImage*)image;

实例方法主要是针对于一种不知道确定弹框消失时间的 例如网络请求完成之后 需要把加载的hud取消掉 可以使用实例方法加载 然后 网络请求成功的回调里面取消hud

类方法 主要是针对几块


// 加载弹框

// 默认文本弹框

// 文本显示弹框(黑色)

// 圆环形状弹框

// 错误信息提示弹框

// 正确信息提示

具体实现 我们来看.m

首先 我们来看重写父类方法 和实例方法


-(instancetype)init

{

if(self= [superinit]) {

}

returnself;

}

// 开始加载动画

-(void)starProgresshud

{

UIWindow*window = [[UIApplicationsharedApplication].windowslastObject];

self.hud= [MBProgressHUDshowHUDAddedTo:windowanimated:YES];

}

// 结束加载

-(void)stopProgresshud

{

if(self.hud) {

[self.hudhideAnimated:YES];

}else

{

}

}

为了避免代码重复 几个类方法中 也会有重复的代码 我们坚定写一个创建的私有方法


// 创建hud

+(MBProgressHUD*)createHud

{

UIWindow*window = [[UIApplicationsharedApplication].windowslastObject];

MBProgressHUD*hud = [MBProgressHUDshowHUDAddedTo:windowanimated:YES];

returnhud;

}

具体方法实现 需要那些参数 就不一一细说了 很简单的一次二次封装 但是很实用 至少我们写弹框的时候 可以避免写大量重复的代码


// 默认文本样式

+(void)showNomorText:(NSString*)text AfterTime:(NSTimeInterval)time;

{

MBProgressHUD*hud = [selfcreateHud];

hud.mode=MBProgressHUDModeText;

hud.label.text= text;

[hudhideAnimated:YESafterDelay:time];

}

// 黑色文本样文本样式

+(void)showText:(NSString*)text AfterTime:(NSTimeInterval)time

{

MBProgressHUD*hud = [selfcreateHud];

hud.mode=MBProgressHUDModeText;

hud.label.text= text;

hud.bezelView.backgroundColor= [UIColorblackColor];

hud.label.textColor= [UIColorwhiteColor];

[hudhideAnimated:YESafterDelay:time];

}

// 圆环

+(void)showRotundityAfterTime:(NSTimeInterval)time

{

MBProgressHUD*hud = [selfcreateHud];

hud.mode=MBProgressHUDModeDeterminate;

[hudhideAnimated:YESafterDelay:time];

}

// 错误信息提示弹框

+(void)showError:(NSString*)text AfterTime:(NSTimeInterval)time errorimage:(UIImage*)image;

{

MBProgressHUD*hud = [selfcreateHud];

hud.mode=MBProgressHUDModeCustomView;

UIImageView*imageV=[[UIImageViewalloc]initWithImage:image];

hud.customView= imageV;

hud.square=YES;

hud.label.text=[NSStringstringWithFormat:@"%@",text];

[hudhideAnimated:YESafterDelay:time];

}

// 正确信息提示

+(void)showSuccess:(NSString*)text AfterTime:(NSTimeInterval)time successimage:(UIImage*)image;

{

MBProgressHUD*hud = [selfcreateHud];

hud.mode=MBProgressHUDModeCustomView;

hud.customView=[[UIImageViewalloc]initWithImage:image];

hud.label.text=[NSStringstringWithFormat:@"%@",text];

[hudhideAnimated:YESafterDelay:time];

}

相关文章

  • MBProgressHUD 二次封装

    针对项目的需求做了一下二次封装,主要是针对自己的项目去做的封装。特此留存一下以备后期使用

  • mbprogresshud的二次封装

    mbprogresshud 是一款非常方便hud视图 称为弹框 虽然方便 但是我们开发者实在不能容忍每次写一个弹框...

  • JZLProgressHUD基于MBProgressHUD二次封

    基于MBProgressHUD二次封装HUD,方便调用使用时把JZLProgressHUD文件夹拖入到自己项目即可...

  • 基于MBProgressHUD的二次封装

    之前一直使用的是SVProgressHUD,但是SVProgressHUD最大的问题就是没法加在指定的Vi...

  • XBLoadingKit

    一、原起 我为什么要对MBProgressHUD进行二次封装?今年新找的这份工作,项目的创建的时间比较早了,201...

  • MBProgressHUD简单封装

    对第三方插件MBProgressHUD做一个简单的封装 github下载地址: https://github.co...

  • MBProgressHUD简单封装

    项目中需要导入MBProgressHUD和SDWebImage,实现效果如下: .h .m

  • 最新MBProgressHUD封装

    前言 在我们平时做项目的时候,为了提高交互体验,难免会用到一些提示语。除了UI上有特殊的要求需要自定义提示UI,一...

  • 封装MBProgressHUD弹窗

    每个爱啪啪里面都会有提示框,但是自己写太麻烦,还会遇到各种各样的bug。所以呢,封装一下HUD还是很有必要滴~~~...

  • 基于MBProgressHUD封装

    #import "MBProgressHUD.h" NS_ASSUME_NONNULL_BEGIN typedef...

网友评论

      本文标题:mbprogresshud的二次封装

      本文链接:https://www.haomeiwen.com/subject/aaspbttx.html