zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【转】【VS2008无法启动asp.net development server】的解决
    C#运用技巧(1)
    C# — WinForm 基本控件
    TB 需求分析
    C# 远程连接SQL 2005数据库
    SQL语句的运用
    如何跌倒
    国学堂-梁冬对话张长琳《人体的彩虹》系列
    帝范:中国最伟大帝王的沉思录
    web.xml 配置
  • 原文地址:https://www.cnblogs.com/jys509/p/4757852.html
Copyright © 2011-2022 走看看