iOS开发——使用MBProgressHUD来增加用户体验

     对于移动客户端应用来说,本身就非常注意用户体验,比如一个长时间的加载造成界面卡死,MBProgressHUD就可以帮助你解决该问题。MBProgressHUD可以在网页加载、下载等耗时操作中给予用户以提示。HUD的本意就是抬头显示功能。今天我们就尝试来使用MBProgressHUD这个强大的第三方库(感谢)。MBProgressHUD在Github的地址:https://github.com/jdg/MBProgressHUD   。里面已经包含了较多的代码示例,大家可以根据自己的需求使用。 但是个人觉得直接使用MBProgressHUD有一点点复杂,然而也刚刚在网上发现有其他大神(不认识是谁,感谢)对MBProgressHUD做了封装,使用起来更加的方便,我也写了部分示例,上传至: https://github.com/chenyufeng1991/UseMBProgressHUD   。

    MBProgressHUD的使用步骤如下:

(1)首先我从网上下载了别人封装好的MBProgressHUD库,共有5个文件,大家也可以直接从我的代码中进行拷贝。



(2)同时我做了一个网络请求,使用AFNetworking来完成号码归属地的GET请求(可能由于服务器原因,本身该请求就耗时很久,正好可以来测试MBProgressHUD)。强烈建议大家学会Cocoapods和AFnetworking,关于Cocoapods和AFNetworking,可以参考《iOS开发——网络请求案例汇总(AFNetworking)》、《iOS包管理工具Cocoapods的安装与使用》两篇博客。

 我在界面上放了一个按钮,点击按钮进行网络请求。代码如下:(请注意注释。。。)

主要是[MBProgressHUD showMessage],[MBProgressHUD hideHUD],[MBProgressHUD showSuccess],[MBProgressHUD showError]四个方法的使用。

#import "ViewController.h"
#import <AFNetworking.h>
#import "MBProgressHUD+MJ.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

}


- (IBAction)buttonPressed:(id)sender {

  //在一开始进行网络请求的时候,弹出MBProgressHUD;
  [MBProgressHUD showMessage:@"正在加载。。。"];

  AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  manager.responseSerializer             = [AFHTTPResponseSerializer serializer];


  //这里改成POST,就可以进行POST请求;
  //把要传递的参数直接放到URL中;而不是放到字典中;
  [manager GET:@"http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=18888888888&userId="
    parameters:nil
       success:^(AFHTTPRequestOperation *operation,id responseObject){
         NSString *string                       = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
         NSLog(@"成功: %@", string);

         //网络请求成功,隐藏上述的“正在加载”的MBProgressHUD;
         [MBProgressHUD hideHUD];
         //同时弹出“加载成功”的提示;
         [MBProgressHUD showSuccess:@"加载成功"];
       }
       failure:^(AFHTTPRequestOperation *operation,NSError *error){
         NSLog(@"失败: %@", error);

         //网络请求失败,隐藏上述的“正在加载”的MBProgressHUD;
         [MBProgressHUD hideHUD];
         //同时弹出“加载失败”的提示;
         [MBProgressHUD showError:@"加载失败"];
       }];
  
}


@end


(3)运行程序,效果如下:

【加载过程】


【大概过几秒,就会请求成功】

11。

【断开网络,就会加载失败】




       当然,你也可以根据自己的需求修改参数,文本。最好是查看源码,这样使用起来就会更加随心所欲。



github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页