iOS開發——使用MBProgressHUD來增加使用者體驗
對於移動用戶端應用來說,本身就非常注意使用者體驗,比如一個長時間的載入造成介面卡死,MBProgressHUD就可以協助你解決該問題。MBProgressHUD可以在網頁載入、下載等耗時操作中給予使用者以提示。HUD的本意就是抬頭顯示功能。今天我們就嘗試來使用MBProgressHUD這個強大的第三方庫(感謝)。MBProgressHUD在Github的地址:https://github.com/jdg/MBProgressHUD 。裡面已經包含了較多的程式碼範例,大家可以根據自己的需求使用。 但是個人覺得直接使用MBProgressHUD有一點點複雜,然而也剛剛在網上發現有其他大神(不認識是誰,感謝)對MBProgressHUD做了封裝,使用起來更加的方便,我也寫了部分樣本,上傳至: https://github.com/chenyufeng1991/UseMBProgressHUD 。
MBProgressHUD的使用步驟如下:
(1)首先我從網上下載了別人封裝好的MBProgressHUD庫,共有5個檔案,大家也可以直接從My Code中進行拷貝。
。
(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。
【斷開網路,就會載入失敗】
。
當然,你也可以根據自己的需求修改參數,文本。最好是查看源碼,這樣使用起來就會更加隨心所欲。