Iphone 检测UITableView是否已滚动到底部时出现问题
我正在使用以下代码来检测我是否已到达UITableView的底部Iphone 检测UITableView是否已滚动到底部时出现问题,iphone,objective-c,cocoa-touch,uitableview,uiscrollview,Iphone,Objective C,Cocoa Touch,Uitableview,Uiscrollview,我正在使用以下代码来检测我是否已到达UITableView的底部 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) { NSLog(@"bottom!"); NSLog(
- (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]];
}
}
这很好,但唯一的问题是当用户向下拉tableview(比如拉刷新)时,会触发代码。如何处理此问题?在didScroll方法中存储scrollview的最后位置。如果检测到向下滚动,并且最后一个位置已经是scrollview的底部,则忽略它。尝试使用另一种算法检测是否已到达表视图的底部。例如,查看cellForRowAtIndexPath:(NSIndexPath*)indexPath到当前单元格的indexPath,如果indexPath中的行数等于数据数组中的行数,则达到了底部。尝试这种方法
if(self.tableview.contentOffset.y<0){
//it means table view is pulled down like refresh
return;
}
else if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) {
NSLog(@"bottom!");
NSLog(@"%@", [self getLastMessageID]);
[self getMoreStuff:[self getLastMessageID]];
}
if(self.tableview.contentOffset.y=(self.tableview.contentSize.height-self.tableview.bounds.size.height)){
NSLog(@“底部!”);
NSLog(@“%@,[self getLastMessageID]);
[self-getMoreStuff:[self-getLastMessageID]];
}
不要忘记选项卡栏:(