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的形式来操作的,这样写起代码来更直观也更高效。

  • 相关阅读:
    菜鸟学Windows Phone 8开发(2)——了解XAML
    菜鸟学Windows Phone 8开发(1)——创建第一个应用程序
    Android6.0之来电转接号码显示修改
    Android之拨号界面图片风格,无信息默认显示界面修改
    Android之mtklog分析
    Android之常用Git命令
    Android开发之Git配置
    Android之Dialer之紧急号码
    Android之mtk上传log
    字节对齐
  • 原文地址:https://www.cnblogs.com/ubersexual/p/3264756.html
Copyright © 2011-2022 走看看