1. 创建刷新控件, 并将控件设置到TableView的tableFooterView:
- (void)setupUpRefresh { FooterView *refreshFooterView = [FooterView refreshFooterView]; refreshFooterView.hidden = YES; self.tableView.tableFooterView = refreshFooterView; }
2. 将更多数据加载到原数据的后面:
[self.datas addObject:kMoreData];
3. 刷新表格并隐藏FooterView:
// 刷新表格 [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]; } }