首先說網絡慢帶來的數據顯示問題
可以通過判斷請求參數是否一致來刷新tableview。
SJBCategaryModel * categaryModel = self.categarys[CategarySelectRow];
?
? ? NSMutableDictionary * params = [NSMutableDictionary dictionary];
? ? categaryModel.currentPage = 1;
? ? params[@"a"] = @"list";
? ? params[@"c"] = @"subscribe";
? ? params[@"category_id"] = @(categaryModel.id);
? ? params[@"page"] = @(categaryModel.currentPage);
? ? self.params = params;
??
? ? ? ? [self.manager GET:Main_URL parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
?? ? ? ? ? ?
? ? ? ? } success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {
? ? ? ? ? ? if (self.params != params) return;
? ? ? ? ? ? [categaryModel.userArrM removeAllObjects];
?? ? ? ? ?
? ? ? ? ? ? for (int i=0; i<[responseObject[@"list"] count]; i++) {
? ? ? ? ? ? ? ? SJBUserModel * model = [[SJBUserModel alloc] init];
? ? ? ? ? ? ? ? [model setValuesForKeysWithDictionary:responseObject[@"list"][i]];
? ? ? ? ? ? ? ? [categaryModel.userArrM addObject:model];
? ? ? ? ? ? }
? ? ? ? ? ? categaryModel.total = [responseObject[@"total"] integerValue];
?? ? ? ? ? ?
? ? ? ? ? ? [self.userTableView reloadData];
? ? ? ? ? ? [self.userTableView.mj_header endRefreshing];
? ? ? ? ? ? [self checkTableFooterState];
? ? ? ? ?
? ? ? ? } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
? ? ? ? ? ? [self.userTableView.mj_header endRefreshing];
? ? ? ? }];
?上啦加載時,footer顯示不一致的問題
? ?
? ? if (!self.categarys.count) {
? ? ? ? return;
? ? }
??
? ? SJBCategaryModel * categaryModel = self.categarys[CategarySelectRow];
?? ?
? ? self.userTableView.mj_footer.hidden = (categaryModel.userArrM.count == 0);
?
? ? if (categaryModel.userArrM.count == categaryModel.total) {
?? ? ? ?
? ? ? ? [self.userTableView.mj_footer endRefreshingWithNoMoreData];
? ? }else{
? ? ? ? [self.userTableView.mj_footer endRefreshing];
? ? }
?如果請求的數據的數量與總量相等就顯示沒有更多的數據,若小于總量就顯示點擊或上拉加載更多的數據。