• iOS 第三方框架-MBProgressHUD


    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

  • 相关阅读:
    用户登陆显示cpu、负载、内存信息
    递归算法总结
    Java算法之递归打破及在真实项目中的使用实例
    史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。
    仿饿了么购物车下单效果
    一起来写个酷炫的水波纹浪啊浪界面
    一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片
    使用 CoordinatorLayout 实现复杂联动效果
    这交互炸了(三) :不看后悔!你一定没见过这样的闪屏
    这交互炸了(二):爱范儿是如何让详情页缩小为横向列表的
  • 原文地址:https://www.cnblogs.com/jys509/p/4757852.html
Copyright © 2020-2023  润新知