第三方的等待指標,MBProgressHUD就是第三方提供的等待指標架構。下面是MBProgressHUD提供的等待指標樣式,它們基 本可以分為:未知結束時間和已知結束時間兩大類等待指標,在MBProgressHUD中可以為等待指標添加標籤和詳細標籤
MBProgressHUD的是https://github.com/matej/MBProgressHUD,我們將下載的源 檔案中的MBProgressHUD.h和MBProgressHUD.m拷貝到自己的工程中,MBProgressHUD依賴的架構 有:Foundation.framework、UIKit.framework和CoreGraphics.framework,我們需要將這些架構添 加到工程中。
我們為應用添加MBProgressHUD等待指標,修改主視圖控制器MasterViewController.m的startRequest方法代碼如下,注意加粗部分:
-(void)startRequest{ //初始化MBProgressHUD MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.mode = MBProgressHUDModeCustomView; hud.labelText = @”Loading”;NSString *strURL = [[NSString alloc]initWithFormat:@”http://iosbook3/mynotes/webservice.php”];NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];NSString *post;if (action == ACTION_QUERY) {//查詢處理post = [NSString stringWithFormat:@"email=%@&type=%@&action=%@",@"<你的iosbook1.com使用者郵箱>",@"JSON",@"query"];} else if (action == ACTION_REMOVE) {//刪除處理NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];NSMutableDictionary* dict = self.listData[indexPath.row];post = [NSString stringWithFormat:@"email=%@&type=%@&action=%@&id=%@",@"<你的iosbook1.com使用者郵箱>",@"JSON",@"remove",[dict objectForKey:@"ID"]];}NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];[request setHTTPMethod:@"POST"];[request setHTTPBody:postData];NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];if (connection) {_datas = [NSMutableData new];}}-(void) connection:(NSURLConnection *)connection didFailWithError: (NSError *)error {NSLog(@”%@”,[error localizedDescription]);[MBProgressHUD hideHUDForView:self.view animated:YES];} - (void) connectionDidFinishLoading: (NSURLConnection*) connection {NSLog(@”請求完成…”);NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:_datasoptions:NSJSONReadingAllowFragments error:nil];if (action == ACTION_QUERY) {//查詢處理[self reloadView:dict];} else if (action == ACTION_REMOVE) {//刪除處理NSString *message = @”操作成功。”;NSNumber *resultCodeObj = [dict objectForKey:@"ResultCode"];if ([resultCodeObj integerValue] < 0) {message = [resultCodeObj errorMessage];}UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@”提示資訊”message:messagedelegate:nilcancelButtonTitle:@”OK”otherButtonTitles: nil];[alertView show];//重新查詢action = ACTION_QUERY;[self startRequest];} [MBProgressHUD hideHUDForView:self.view animated:YES];}