1. 建立刷新控件, 並將控件設置到TableView的tableFooterView:git
- (void)setupUpRefresh { FooterView *refreshFooterView = [FooterView refreshFooterView]; refreshFooterView.hidden = YES; self.tableView.tableFooterView = refreshFooterView; }
2. 將更多數據加載到原數據的後面:github
[self.datas addObject:kMoreData];
3. 刷新表格並隱藏FooterView:spa
// 刷新表格 [self.tableView reloadData]; // 結束刷新狀態, 隱藏FooterView self.tableView.tableFooterView.hidden = YES;
4. 經過代理方法, 設置刷新控件顯示或隱藏:代理
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { // 獲取當前contentView滑動的位置(對應contentSize) CGFloat contenOffsetY = scrollView.contentOffset.y; // 若是tableView尚未數據或footerView在顯示時, 直接返回 if (self.datas.count == 0 || self.tableView.tableFooterView.hidden == NO) { return; } // 最後一個Cell顯示時contentOffSetY應該在的最小位置(內容高度 + 邊框 - 顯示窗口高度 - footrerView高度) CGFloat targetContentOffsetY = scrollView.contentSize.height + scrollView.contentInset.bottom - scrollView.height - self.tableView.tableFooterView.height; // 若滑動位置在目標位置下(顯示到最後一個Cell)時 if (contenOffsetY >= targetContentOffsetY) { // 顯示footerView self.tableView.tableFooterView.hidden = NO; // 加載更多數據 [self loadMoreDatas]; } }