版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.05.30 |
前言
在我們的app項目中酵幕,為了增加和用戶很好的交互能力,通常都需要加一些提示圖缓艳,比如說校摩,當(dāng)我們需要網(wǎng)絡(luò)加載數(shù)據(jù)的時候,首先要監(jiān)測網(wǎng)絡(luò)阶淘,如果網(wǎng)絡(luò)斷開的時候衙吩,我們需要提示用戶;還有一個場景就是登陸的時候溪窒,需要提示用戶正在登錄中和登錄成功坤塞;再比如清除用戶的緩存數(shù)據(jù)成功的時候,也需要進(jìn)行清除成功的提示的澈蚌,等等摹芙。總之宛瞄,用的場景很多浮禾,好的提示圖可以增強(qiáng)和用戶的交互體驗,試想坛悉,如果沒有網(wǎng)絡(luò),也不提示用戶承绸,用戶還以為還在登錄裸影,過了一會還是上不去,那可能用戶就瘋掉了军熏,怒刪app了轩猩。最近做的幾個項目中也是對這個要求的也很多,在實際應(yīng)用中可以自己寫荡澎,也可以使用第三方框架均践,比較知名的比如MBProgressHUD和SVProgressHUD,從這一篇開始我就一點一點的介紹它們以及它們的使用方法摩幔,希望對大家有所幫助彤委,那我們就開始嘍。先給出github地址:
MBProgressHUD github
感興趣可以先看上一篇
1.提示圖顯示篇之MBProgressHUD(一)
2.提示圖顯示篇之MBProgressHUD(二)
3.提示圖顯示篇之MBProgressHUD(三)
4.提示圖顯示篇之MBProgressHUD(四)
5.提示圖顯示篇之MBProgressHUD(五)
這一篇將對MBProgressHUD的一種封裝進(jìn)行說明或衡。
詳情
下面主要對提示圖的一種封裝進(jìn)行說明焦影。
1. MBProgressHUD+JJProgressHUDTool.h
#import <MBProgressHUD/MBProgressHUD.h>
@interface MBProgressHUD (JJProgressHUDTool)
/**
* 顯示成功信息提示框
*
* @param success 成功信息
* @param view 指定顯示信息的view
*/
+ (void)showSuccess:(NSString *)success toView:(UIView *)view;
/**
* 顯示失敗信息提示框
*
* @param success 失敗信息
* @param view 指定顯示信息的view
*/
+ (void)showError:(NSString *)error toView:(UIView *)view;
/**
* 顯示消息提示框
*
* @param message 消息
* @param view 指定顯示信息的view
*
* @return 提示框
*/
+ (MBProgressHUD *)showMessage:(NSString *)message toView:(UIView *)view;
/**
* 顯示成功信息提示框
*
* @param success 成功信息
*/
+ (void)showSuccess:(NSString *)success;
/**
* 顯示失敗信息提示框
*
* @param success 失敗信息
*/
+ (void)showError:(NSString *)error;
/**
* 顯示消息提示框
*
* @param message 消息
*
* @return 提示框
*/
+ (MBProgressHUD *)showMessage:(NSString *)message;
/**
* 隱藏提示框
*
* @param view 指定隱藏提示框的view
*/
+ (void)hideHUDForView:(UIView *)view;
/**
* 隱藏提示框
*/
+ (void)hideHUD;
@end
2. MBProgressHUD+JJProgressHUDTool.m
#import "MBProgressHUD+JJProgressHUDTool.h"
@implementation MBProgressHUD (JJProgressHUDTool)
#pragma mark 顯示信息
+ (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;
// 設(shè)置圖片
hud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"MBProgressHUD.bundle/%@", icon]]];
// 再設(shè)置模式
hud.mode = MBProgressHUDModeCustomView;
// 隱藏時候從父控件中移除
hud.removeFromSuperViewOnHide = YES;
// 1秒之后再消失
[hud hide:YES afterDelay:1.0];
}
#pragma mark 顯示錯誤信息
+ (void)showError:(NSString *)error toView:(UIView *)view
{
[self show:error icon:@"error.png" view:view];
}
#pragma mark 顯示成功信息
+ (void)showSuccess:(NSString *)success toView:(UIView *)view
{
[self show:success icon:@"success.png" view:view];
}
#pragma mark 顯示一些信息
+ (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;
}
+ (void)showSuccess:(NSString *)success
{
[self showSuccess:success toView:nil];
}
+ (void)showError:(NSString *)error
{
[self showError:error toView:nil];
}
+ (MBProgressHUD *)showMessage:(NSString *)message
{
return [self showMessage:message toView:nil];
}
+ (void)hideHUDForView:(UIView *)view
{
if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
[self hideHUDForView:view animated:YES];
}
+ (void)hideHUD
{
[self hideHUDForView:nil];
}
@end
后記
MBProgressHUD的封裝差不多就這樣子,大家可以根據(jù)自己的使用情況進(jìn)行修改封断,有不對的地方希望大家批評指出斯辰。