標籤:
MBProgressHUD提示框官網地址:https://github.com/jdg/MBProgressHUD
官網裡已經提供了足夠多的例子供我們使用,但在實現開發中,我們用到的只是其中的一小部分而已。為了使用更方便,下面對它進行擴充(Category)
MBProgressHUD+NJ.h
#import "MBProgressHUD.h"@interface MBProgressHUD (NJ)+ (void)showSuccess:(NSString *)success;+ (void)showSuccess:(NSString *)success toView:(UIView *)view;+ (void)showError:(NSString *)error;+ (void)showError:(NSString *)error toView:(UIView *)view;+ (MBProgressHUD *)showMessage:(NSString *)message;+ (MBProgressHUD *)showMessage:(NSString *)message toView:(UIView *)view;+ (void)hideHUD;+ (void)hideHUDForView:(UIView *)view;@end
MBProgressHUD+NJ.m
#import "MBProgressHUD+NJ.h"@implementation MBProgressHUD (NJ)/** * 顯示資訊 * * @param text 資訊內容 * @param icon 表徵圖 * @param view 顯示的視圖 */+ (void)show:(NSString *)text icon:(NSString *)icon view:(UIView *)view{ if (view == nil) view = [[UIApplication sharedApplication].windows lastObject]; // 快速顯示一個提示資訊 MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; hud.labelText = text; // 設定圖片 hud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"MBProgressHUD.bundle/%@", icon]]]; // 再設定模式 hud.mode = MBProgressHUDModeCustomView; // 隱藏時候從父控制項中移除 hud.removeFromSuperViewOnHide = YES; // 1秒之後再消失 [hud hide:YES afterDelay:0.7];}/** * 顯示成功資訊 * * @param success 資訊內容 */+ (void)showSuccess:(NSString *)success{ [self showSuccess:success toView:nil];}/** * 顯示成功資訊 * * @param success 資訊內容 * @param view 顯示資訊的視圖 */+ (void)showSuccess:(NSString *)success toView:(UIView *)view{ [self show:success icon:@"success.png" view:view];}/** * 顯示錯誤資訊 * */+ (void)showError:(NSString *)error{ [self showError:error toView:nil];}/** * 顯示錯誤資訊 * * @param error 錯誤資訊內容 * @param view 需要顯示資訊的視圖 */+ (void)showError:(NSString *)error toView:(UIView *)view{ [self show:error icon:@"error.png" view:view];}/** * 顯示錯誤資訊 * * @param message 資訊內容 * * @return 直接返回一個MBProgressHUD,需要手動關閉 */+ (MBProgressHUD *)showMessage:(NSString *)message{ return [self showMessage:message toView:nil];}/** * 顯示一些資訊 * * @param message 資訊內容 * @param view 需要顯示資訊的視圖 * * @return 直接返回一個MBProgressHUD,需要手動關閉 */+ (MBProgressHUD *)showMessage:(NSString *)message toView:(UIView *)view { if (view == nil) view = [[UIApplication sharedApplication].windows lastObject]; // 快速顯示一個提示資訊 MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; hud.labelText = message; // 隱藏時候從父控制項中移除 hud.removeFromSuperViewOnHide = YES; // YES代表需要蒙版效果 hud.dimBackground = YES; return hud;}/** * 手動關閉MBProgressHUD */+ (void)hideHUD{ [self hideHUDForView:nil];}/** * 手動關閉MBProgressHUD * * @param view 顯示MBProgressHUD的視圖 */+ (void)hideHUDForView:(UIView *)view{ if (view == nil) view = [[UIApplication sharedApplication].windows lastObject]; [self hideHUDForView:view animated:YES];}@end
我們可以看到上面的代碼,還引用了表徵圖。直接把表徵圖拷過去,最後的源碼裡有提供。項目結構:
使用方法很非常的簡單。
彈框顯示成功:
[MBProgressHUD showSuccess:@"測試showSuccess"];
彈框顯示失敗:
[MBProgressHUD showError:@"測試showError"];
彈框顯示載入中:
[MBProgressHUD showMessage:@"正在載入資料中....."]; // 幾秒後消失,當然,這裡可以改為網路請求 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // 移除HUD [MBProgressHUD hideHUD]; // 提醒有沒有新資料 [MBProgressHUD showError:@"沒有新資料"]; });
部分
源碼下載:http://pan.baidu.com/s/1eQhN7VW
iOS 第三方架構-MBProgressHUD