UITableView is a subclass of UIScrollView, and UITableViewDelegate conforms to UIScrollViewDelegate. So the delegate you attach to the table view will get events such asscrollViewDidScroll:
, and you can call methods such as contentOffset
in the tableview delegate do something like this:
- -
(void)scrollViewDidScroll:(UIScrollView *)aScrollView { -
-
CGPoint offset = aScrollView.contentOffset; -
CGRect bounds = aScrollView.bounds; -
CGSize size = aScrollView.contentSize; -
UIEdgeInsets inset = aScrollView.contentInset; -
float y = offset.y + bounds.size.height - inset.bottom; -
float h = size.height; -
// NSLog(@"offset: %f", offset.y); -
// NSLog(@"content.height: %f", size.height); -
// NSLog(@"bounds.height: %f", bounds.size.height); -
// NSLog(@"inset.top: %f", inset.top); -
// NSLog(@"inset.bottom: %f", inset.bottom); -
// NSLog(@"pos: %f of %f", y, h); -
float reload_distance = 10; -
if(y > h + reload_distance) { -
//NSLog(@"load more rows"); -
-
if(!isLoading) -
[self loadMore]; -
} - }