I'm using the following code to detect if I've reached the bottom of a UITableView
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) {
NSLog(@"bottom!");
NSLog(@"%@", [self getLastMessageID]);
[self getMoreStuff:[self getLastMessageID]];
}
}
This works fine, but the only problem is when the user is pulling the tableview down (like pull to refresh) the code fires. How can I handle this?
Try to use another algorithm to detect, that you reached the bottom of table view. For example, look at the cellForRowAtIndexPath:(NSIndexPath *)indexPath to the indexPath of a current cell and if the number of row in IndexPath equals to the number of rows in your data array, then you reached a bottom.
try this way
Store the last position of the scrollview in your didScroll method. If you detect a scroll down and the last position was already the bottom of the scrollview then you ignore it.