通常說到上拉刷新下拉刷新,不少人可能想到的是一個第三方開源框架EGORefresh,下面說下,如何本身寫代碼實現。框架
UITableView自己是一個UIScrollView,因此UITableView能夠實現UIScrollView的代理方法。上拉和下拉刷新無非是UIScrollView偏移到必定程度調用刷新方法。 實現- (void)scrollViewDidScroll:(UIScrollView*)scrollView代理方法便可。代碼以下:spa
(
void
)scrollViewDidScroll:(UIScrollView *)scrollView
代理
{
// 假設偏移表格高度的20%進行刷新
if
(!_isLoading) {
// 判斷是否處於刷新狀態,刷新中就不執行
// 取內容的高度:
// 若是內容高度大於UITableView高度,就取TableView高度
// 若是內容高度小於UITableView高度,就取內容的實際高度
float
height = scrollView.contentSize.height > _tableView.frame.size.height ?_tableView.frame.size.height : scrollView.contentSize.height;
if
((height - scrollView.contentSize.height + scrollView.contentOffset.y) / height > 0.2) {
// 調用上拉刷新方法
}
if
(- scrollView.contentOffset.y / _tableView.frame.size.height > 0.2) {
// 調用下拉刷新方法
}
}
}