iOS 第三方框架-MBProgressHUD

来源:互联网 发布:故障树分析软件 编辑:程序博客网 时间:2024/05/21 17:08

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


0 0
原创粉丝点击