上拉刷新的原理就是当UITableView滚动到底部时,执行加载操作。
如何判断UITableView滚动到了底部呢?首先,你得知道UITableView继承自UIScrollView
调用其委托方法如下
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
float offY = scrollView.contentOffset.y;
float contentHeight = scrollView.contentSize.height;
float boundsHeight = scrollView.bounds.size.height;
int d = contentHeight - boundsHeight > 0?(contentHeight - boundsHeight) :0;
if (offY >= d ){
// To Do Something
}
}
这个委托方法是上拉刷新中用到的方法,比较好用,挺不错!
还有一个是UITableView自己独有的代理方法,如下
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == [_unsignedOutArray count] - 1) {
[self performSelector:@selector(updateData) withObject:nil afterDelay:1.0f];
}
}
这个委托方法可以用来当UITableView一滚动到底部的时候就刷新,比较好用。
两种方法都不错,看你的上拉刷新是如何做的了。