對於移動客戶端應用來說,本身就非常注意用戶體驗,比如一個長時間的加載造成界面卡死,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 #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。
【斷開網絡,就會加載失敗】
。
當然,你也可以根據自己的需求修改參數,文本。最好是查看源碼,這樣使用起來就會更加隨心所欲。