一.推薦關注模塊(一個控制器控制兩個tableView) -- 數據的顯示php
二.解決數據重複請求的問題api
如上圖:用戶已經請求了一次網紅數據了,爲了避免浪費用戶流量,本身設置數據緩存,將用戶請求過的數據暫時保存,用到的時候直接拿出來用.緩存
<1>第一次請求數據的代碼spa
<2>重複請求作的判斷3d
三.分頁數據加載與上拉下拉刷新(MJRefresh)code
1 /** 下拉加載新數據 */ 2 - (void)loadNewData 3 { 4 ChaosRecommendCategory *category = ChaosSelectedCategory; 5 NSDictionary *parameters = @{ 6 @"a" : @"list", 7 @"c" : @"subscribe", 8 @"category_id" : @(category.id) 9 }; 10 // 請求右邊用戶數據 11 [self.manager GET:@"http://api.budejie.com/api/api_open.php" parameters:parameters progress:^(NSProgress * _Nonnull downloadProgress) { 12 13 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 14 15 NSArray *users = [ChaosRecommendUser mj_objectArrayWithKeyValuesArray:responseObject[@"list"]]; 16 17 // 下拉會重複添加數據,爲了保證不重複添加,每次下拉都清空原有的數據 18 [category.users removeAllObjects]; 19 20 // 將分類對應的用戶數據添加到集合中 21 [category.users addObjectsFromArray:users]; 22 // 第一次請求右邊數據的時候,將總數記錄下來 23 category.total = [responseObject[@"total"] integerValue]; 24 // 同時記錄頁數,第一次請求,確定是第一頁 25 category.currentPage = 1; 26 27 // 刷新右邊的表格 28 [self.recommendUserTableView reloadData]; 29 // 刷新完表格,頭部中止刷新 30 [self.recommendUserTableView.mj_header endRefreshing]; 31 // 決定footer的狀態 32 [self checkFooterState]; 33 34 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 35 36 [self.recommendUserTableView.mj_header endRefreshing]; 37 [SVProgressHUD showErrorWithStatus:@"請求數據失敗"]; 38 }]; 39 }