iOS 下對(duì)MBPrograssHUD的二次封裝

最近不是很忙的情況下,發(fā)現(xiàn)項(xiàng)目中對(duì)MBPrograssHUD的二次封裝有些問題,于是決定重新封裝一下

YWHUDManager

介紹

封裝成了加載,成功,失敗,警告,文字,自定義視圖,自定義視圖按鈕,隱藏視圖等幾大板塊,并且全部支持隱藏時(shí)回調(diào),另外提供了接口允許修改所有默認(rèn)屬性,使用靈活,而且使用該框架不會(huì)出現(xiàn)在同一視圖疊加問題,就是說在同一個(gè)父視圖上顯示不會(huì)統(tǒng)一顯示兩個(gè)提示框 方便調(diào)用 ,歡迎大家使用指導(dǎo)

視圖顯示

  • 顯示加載
    4.gif
  • 顯示成功
    5.gif
  • 顯示失敗
    6.gif
  • 顯示警告
    7.gif
  • 顯示文字
    8.gif
  • 顯示自定義視圖
    9.gif
  • 顯示自定義視圖和按鈕
    10.gif

用法

去GitHub下載zip,把其中的YWHudManager拖入到你的項(xiàng)目中,記得點(diǎn)擊允許copy
導(dǎo)入HUDManager.h

#import "HUDManager.h"

顯示加載

#pragma mark - 加載
-(void)showLoading{
    [HUDManager showLoadingHud:nil];
    [self hidenHud];
}

-(void)showLoadingOnView{
    [HUDManager showLoadingHud:@"加載中..." onView:self.view];
    [self hidenHudFromView];
}

-(void)showLoadingAndCompletionBlock{
    [HUDManager showLoadingHud:nil onView:nil completionBlock:^{
        NSLog(@"不指定視圖加載完成");
    }];
   
    [self hidenHud];
}

-(void)showLoadingAndCompletionBlockOnView{
    [HUDManager showLoadingHud:@"加載中..." onView:self.view completionBlock:^{
        NSLog(@"指定視圖加載完成");
    }];
   [self hidenHudFromView];
 
}

顯示成功

-(void)showSuccess{
    [HUDManager showStateHud:nil state:HUDStateTypeSuccess];
}

-(void)showSuccessView{
    [HUDManager showStateHud:nil state:HUDStateTypeSuccess onView:self.view];
}

-(void)showSuccessTimeView{
    [HUDManager showStateHud:@"這是成功了" state:HUDStateTypeSuccess afterDelay:2 onView:self.view];
}

-(void)showSuccessTime{
    [HUDManager showStateHud:@"這是成功了" state:HUDStateTypeSuccess afterDelay:5];
}

-(void)showSuccessTimeImgName{
    [HUDManager showStateHud:nil state:HUDStateTypeSuccess imgName:@"微笑 _小" afterDelay:1.5];
}

-(void)showSuccessTimeImgNameView{
    [HUDManager showStateHud:nil state:HUDStateTypeSuccess imgName:nil afterDelay:1 onView:self.view];
}

-(void)showSuccessTimeImgNameViewBlock{
    [HUDManager showStateHud:nil state:HUDStateTypeSuccess imgName:nil afterDelay:2 onView:nil completionBlock:^{
         NSLog(@"成功回調(diào)");
    }];
}

顯示失敗

-(void)showFail{
    [HUDManager showStateHud:nil state:HUDStateTypeFail];
}

-(void)showFailView{
    [HUDManager showStateHud:nil state:HUDStateTypeFail onView:self.view];
}

-(void)showFailTimeView{
    [HUDManager showStateHud:@"這是失敗了" state:HUDStateTypeFail afterDelay:2 onView:self.view];
}

-(void)showFailTime{
    [HUDManager showStateHud:@"這是失敗了" state:HUDStateTypeFail afterDelay:5];
}

-(void)showFailTimeImgName{
    [HUDManager showStateHud:nil state:HUDStateTypeFail imgName:@"哭" afterDelay:1.5];
}

-(void)showFailTimeImgNameView{
    [HUDManager showStateHud:nil state:HUDStateTypeFail imgName:nil afterDelay:1 onView:self.view];
}

-(void)showFailTimeImgNameViewBlock{
    [HUDManager showStateHud:nil state:HUDStateTypeFail imgName:nil afterDelay:2 onView:nil completionBlock:^{
        NSLog(@"失敗回調(diào)");
    }];
}

顯示警告

-(void)showWarning{
    [HUDManager showStateHud:nil state:HUDStateTypeWarning];
}

-(void)showWarningView{
    [HUDManager showStateHud:nil state:HUDStateTypeWarning onView:self.view];
}

-(void)showWarningTimeView{
    [HUDManager showStateHud:@"這是警告了" state:HUDStateTypeWarning afterDelay:2 onView:self.view];
}

-(void)showWarningTime{
    [HUDManager showStateHud:@"這是警告了" state:HUDStateTypeWarning afterDelay:5];
}

-(void)showWarningTimeImgName{
    [HUDManager showStateHud:nil state:HUDStateTypeWarning imgName:@"哭" afterDelay:1.5];
}

-(void)showWarningTimeImgNameView{
    [HUDManager showStateHud:nil state:HUDStateTypeWarning imgName:nil afterDelay:1 onView:self.view];
}

-(void)showWarningTimeImgNameViewBlock{
    [HUDManager showStateHud:nil state:HUDStateTypeWarning imgName:nil afterDelay:2 onView:nil completionBlock:^{
        NSLog(@"警告回調(diào)");
    }];
}

顯示文字

-(void)showText{
    [HUDManager showTextHud:@"這是展示的文字"];
}

-(void)showTextTime{
    [HUDManager showTextHud:@"這是展示的文字" afterDelay:2];
}

-(void)showTextView{
    [HUDManager showTextHud:@"這是展示的文字" onView:self.view];
}

-(void)showTextTimeView{
    [HUDManager showTextHud:@"這是展示的文字" afterDelay:2 onView:self.view];
}

-(void)showTextTimeViewBlock{
    [HUDManager showTextHud:@"這是展示的文字" afterDelay:2 onView:self.view completionBlock:^{
         NSLog(@"展示的文字回調(diào)");
    }];
}

顯示自定義視圖

-(void)showCustomView{
    UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"warning"]];
    [HUDManager showHudCustomView:imgView];
    
}

-(void)showCustomViewToView{
    UIButton *btn = [[UIButton alloc]init];
    [btn setTitle:@"自定義按鈕視圖" forState:UIControlStateNormal];
    [HUDManager showHudCustomView:btn onView:self.view];
}

-(void)showCustomViewMaskViewToView{
    UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"warning"]];
    [HUDManager showHudCustomView:imgView isShowMaskView:YES onView:self.view];
}

-(void)showCustomViewMaskViewTime{
    UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"微笑"]];
    [HUDManager showHudCustomView:imgView isShowMaskView:YES afterDelay:3];
}

-(void)showCustomViewMaskViewTimeToView{
    UILabel *lable = [[UILabel alloc]init];
    lable.text = @"自定義leble";
    [HUDManager showHudCustomView:lable isShowMaskView:YES afterDelay:2 onView:self.view];
}

-(void)showCustomViewMaskViewTimeViewTextBlock{
   UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"微笑"]];
    [HUDManager showHud:@"自定義視圖" customView:imgView isShowMaskView:YES afterDelay:3 onView:self.view completionBlock:^{
        NSLog(@"自定義視圖回調(diào)");
    }];
}

顯示自定義按鈕視圖

-(void)showBtnHud{
    
    [HUDManager showHud:@"自定義視圖按鈕" customImgView:nil btnTitle:@"確定" btnFont:[UIFont systemFontOfSize:18] btnTitleColor:nil btnBackColor:nil Target:self action:@selector(clickSure) isShowMaskView:YES afterDelay:3 isHide:YES onView:self.view completionBlock:^{
         NSLog(@"自定義帶按鈕的視圖設(shè)置顯示時(shí)間");
    }];
}

-(void)clickSure{
    [HUDManager hidenHudFromView:self.view];
}

-(void)showBtnHudTime{
    UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"warning"]];
    [HUDManager showHud:@"自定義視圖按鈕" customImgView:imgView btnTitle:@"取消" btnFont:[UIFont systemFontOfSize:18] btnTitleColor:nil btnBackColor:nil Target:self action:@selector(clickCancle) isShowMaskView:YES  isHide:NO onView:self.view completionBlock:^{
        NSLog(@"自定義帶按鈕的視圖");
    }];
}

-(void)clickCancle{
    [HUDManager hidenHudFromView:self.view];
}

隱藏

-(void)hidenHud{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [HUDManager hidenHud];
    });
}

-(void)hidenHudFromView{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [HUDManager hidenHudFromView:self.view];
    });
}

自定義默認(rèn)屬性

你可以在程序啟動(dòng)的時(shí)候一次性定義,也可以在使用的時(shí)候臨時(shí)定義,但是如果使用臨時(shí)定義你最好在其他地方使用的時(shí)候也定義,以避免出現(xiàn)提示混亂

/**
 設(shè)置加載提示語
 
 @param logingMessage 加載提示語
 */
+ (void)setYWLoadingMessage:(NSString *)logingMessage;

/**
 設(shè)置成功提示語
 
 @param successMessage 成功提示語
 */
+ (void)setYWSuccessMessage:(NSString *)successMessage;

/**
 設(shè)置成功提示圖片
 
 @param successImgName 成功提示圖片
 */
+ (void)setYWSuccessImgName:(NSString *)successImgName;

/**
 設(shè)置失敗提示語
 
 @param failMessage 成功提示語
 */
+ (void)setYWFailMessage:(NSString *)failMessage;

/**
 設(shè)置失敗提示圖片
 
 @param failImgName 失敗提示圖片
 */
+ (void)setYWFailImgName:(NSString *)failImgName;

/**
 設(shè)置警告提示語
 
 @param warningMessage 警告提示語
 */
+ (void)setYWWarningMessage:(NSString *)warningMessage;

/**
 設(shè)置警告提示圖片
 
 @param warningImgName 警告提示圖片
 */
+ (void)setYWWarningImgName:(NSString *)warningImgName;

/**
 設(shè)置視圖展示時(shí)間 
 
 @param showTime 視圖展示時(shí)間
 */
+ (void)setYWShowTime:(NSTimeInterval)showTime;


/**
 設(shè)置遮罩顏色

 @param white 遮罩顏色
 */
+(void)setYWWhite:(CGFloat)white;


/**
 設(shè)置遮罩透明度

 @param alpha 遮罩透明度
 */
+(void)setYWAlpha:(CGFloat)alpha;

在這里給上github地址,歡迎指正

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容