zoukankan      html  css  js  c++  java
  • MBProgressHUD

    MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单、方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到。到GitHub上可以下载到项目源码https://github.com/jdg/MBProgressHUD,下载下来后直接把MBProgressHUD.h和MBProgressHUD.m拖入工程中就行,别忘了选择拷贝到工程。完了在需要使用的地方导入头文件就可以开始使用了。首先看下工程截图:

                                                                    

     

    接下来是整个Demo的完整界面,这里我只选择出了几个常用的对话框,其他样式的在源码提供的Demo里可以找到,要用的话直接参考就可以。

                                                                             

    接下来直接上代码了,头文件部分:

     

    1. #import <UIKit/UIKit.h>  
    2. #import "MBProgressHUD.h"  
    3.   
    4. @interface ViewController : UIViewController  
    5. {  
    6.     //HUD(Head-Up Display,意思是抬头显示的意思)  
    7.     MBProgressHUD *HUD;  
    8. }  
    9.   
    10. - (IBAction)showTextDialog:(id)sender;  
    11. - (IBAction)showProgressDialog:(id)sender;  
    12. - (IBAction)showProgressDialog2:(id)sender;  
    13. - (IBAction)showCustomDialog:(id)sender;  
    14. - (IBAction)showAllTextDialog:(id)sender;  
    15.   
    16. @end  


    实现文件(按钮实现部分):

     

    1. - (IBAction)showTextDialog:(id)sender {  
    2.     //初始化进度框,置于当前的View当中  
    3.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
    4.     [self.view addSubview:HUD];  
    5.       
    6.     //如果设置此属性则当前的view置于后台  
    7.     HUD.dimBackground = YES;  
    8.       
    9.     //设置对话框文字  
    10.     HUD.labelText = @"请稍等";  
    11.       
    12.     //显示对话框  
    13.     [HUD showAnimated:YES whileExecutingBlock:^{  
    14.         //对话框显示时需要执行的操作  
    15.         sleep(3);  
    16.     } completionBlock:^{  
    17.         //操作执行完后取消对话框  
    18.         [HUD removeFromSuperview];  
    19.         [HUD release];  
    20.         HUD = nil;  
    21.     }];  
    22. }  
    23.   
    24. - (IBAction)showProgressDialog:(id)sender {  
    25.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
    26.     [self.view addSubview:HUD];  
    27.     HUD.labelText = @"正在加载";  
    28.       
    29.     //设置模式为进度框形的  
    30.     HUD.mode = MBProgressHUDModeDeterminate;  
    31.     [HUD showAnimated:YES whileExecutingBlock:^{  
    32.         float progress = 0.0f;  
    33.         while (progress < 1.0f) {  
    34.             progress += 0.01f;  
    35.             HUD.progress = progress;  
    36.             usleep(50000);  
    37.         }  
    38.     } completionBlock:^{  
    39.         [HUD removeFromSuperview];  
    40.         [HUD release];  
    41.         HUD = nil;  
    42.     }];  
    43. }  
    44.   
    45. - (IBAction)showProgressDialog2:(id)sender {  
    46.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
    47.     [self.view addSubview:HUD];  
    48.     HUD.labelText = @"正在加载";  
    49.     HUD.mode = MBProgressHUDModeAnnularDeterminate;  
    50.       
    51.     [HUD showAnimated:YES whileExecutingBlock:^{  
    52.         float progress = 0.0f;  
    53.         while (progress < 1.0f) {  
    54.             progress += 0.01f;  
    55.             HUD.progress = progress;  
    56.             usleep(50000);  
    57.         }  
    58.     } completionBlock:^{  
    59.         [HUD removeFromSuperview];  
    60.         [HUD release];  
    61.         HUD = nil;  
    62.     }];  
    63. }  
    64.   
    65. - (IBAction)showCustomDialog:(id)sender {  
    66.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
    67.     [self.view addSubview:HUD];  
    68.     HUD.labelText = @"操作成功";  
    69.     HUD.mode = MBProgressHUDModeCustomView;  
    70.     HUD.customView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Checkmark"]] autorelease];  
    71.     [HUD showAnimated:YES whileExecutingBlock:^{  
    72.         sleep(2);  
    73.     } completionBlock:^{  
    74.         [HUD removeFromSuperview];  
    75.         [HUD release];  
    76.         HUD = nil;  
    77.     }];  
    78.       
    79. }  
    80.   
    81. - (IBAction)showAllTextDialog:(id)sender {  
    82.     HUD = [[MBProgressHUD alloc] initWithView:self.view];  
    83.     [self.view addSubview:HUD];  
    84.     HUD.labelText = @"操作成功";  
    85.     HUD.mode = MBProgressHUDModeText;  
    86.       
    87.     //指定距离中心点的X轴和Y轴的偏移量,如果不指定则在屏幕中间显示  
    88. //    HUD.yOffset = 150.0f;  
    89. //    HUD.xOffset = 100.0f;  
    90.       
    91.     [HUD showAnimated:YES whileExecutingBlock:^{  
    92.         sleep(2);  
    93.     } completionBlock:^{  
    94.         [HUD removeFromSuperview];  
    95.         [HUD release];  
    96.         HUD = nil;  
    97.     }];  
    98. }  


    依次实现的效果如下:

                              

     

                              

    下面这个效果就类似Android中的Toast:

                                                         

    以上就简单介绍了MBProgressHUD的使用,这里都是采用block的形式来操作的,这样写起代码来更直观也更高效。

  • 相关阅读:
    java中的 equals 与 ==
    String类的内存分配
    SVN用命令行更换本地副本IP地址
    npoi 设置单元格格式
    net core 微服务框架 Viper 调用链路追踪
    打不死的小强 .net core 微服务 快速开发框架 Viper 限流
    net core 微服务 快速开发框架 Viper 初体验20201017
    Anno 框架 增加缓存、限流策略、事件总线、支持 thrift grpc 作为底层传输
    net core 微服务 快速开发框架
    Viper 微服务框架 编写一个hello world 插件02
  • 原文地址:https://www.cnblogs.com/sunnyke/p/4720783.html
Copyright © 2011-2022 走看看