对于移动客户端应用来说,本身就非常注意用户体验,比如一个长时间的加载造成界面卡死,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 。欢迎大家访问!