UItableView 在滚动时加载数据 10 10 条记录

Posted

技术标签:

【中文标题】UItableView 在滚动时加载数据 10 10 条记录【英文标题】:UItableView load data 10 10 records on scroll 【发布时间】:2014-04-04 07:29:24 【问题描述】:

我正在从网络服务获取数据,我必须在 UITableView 中显示它。但这里的条件是我最初只能显示 10 条记录,然后一旦用户向下滚动,我必须加载更多包含图像的记录。我尝试搜索它但没有得到任何有用的答案。

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath  

显示值,但我将如何最初只获取 10 条记录 ce,然后基于滚动获取其他记录。请提供一些要点或示例代码

【问题讨论】:

你要找的东西叫做分页... hmm,我也有 100 多条带图像的记录,我想在最初的 10 条记录中加载 tableview 上的数据,在用户滚动或完全加载后,接下来的 10 条记录会自动加载如何这样做 Paging and UITableView?的可能重复 好吧,我提到了您要查找的内容称为分页或分页。搜索 UITableView 分页或 UITableView 分页,你会得到几十个结果和示例代码 我在 uitablview 中寻找分页 【参考方案1】:

在您的后端链接中保留一个“索引”字段。当 index=0 时,从 backed 中获取 10 条记录,然后将 index 增加到 1,再获取 10 条记录,等等......

在最后滚动tableView时保留代码以调用链接,

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate


    NSInteger currentOffset = scrollView.contentOffset.y;
    NSInteger maximumOffset = scrollView.contentSize.height- scrollView.frame.size.height;
    if (maximumOffset - currentOffset <= 0) 
        index =index +1;
        // Call your link here
    

【讨论】:

【参考方案2】:

在您的 cellForRowAtIndexPath: 方法中,您始终可以检查当前行是否等于 your data - 1: 的计数

if(indexPath.row == tableData.count - 1)

    [self getMoreData];

【讨论】:

【参考方案3】:
    我假设在您的网络服务中您将获得页码和 10 按页记录 当您在 tablview 中滚动时,它将调用 willDisplayCell 并检查 当前数组计数。 如果您的滚动达到等于数组计数或最后一条记录,它将再次请求带有页码的数据。

//Declare variable 
 NSInteger currentPageNumber;

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    if (indexPath.row == arrData.count-1) 
         currentPageNumber++;
         //Call your Webservice
     


-(void)webserviceCall
    //pass page number in your web service you will get data with page number 
   // After getting data from web service you need to add data in your array, so you will have total records. 
 if([[jsonResponse objectForKey:@"status"] intValue] == 1)
      [arrData addObjectsFromArray:arrData];
    

  

【讨论】:

好的,如果我想在本地处理数据,我的意思是我从服务器获取 500 个数据耗时,在这里我想在滚动上加载 10 10 个数据将如何处理这个\ 您可以将收到的数据添加到本地数据库中,以便在本地没有互联网连接时获得。

以上是关于UItableView 在滚动时加载数据 10 10 条记录的主要内容,如果未能解决你的问题,请参考以下文章

滚动时UITableView不加载单元格数据

在 UITableView 上加载数据向上滚动

如何在我查看 UITableView 时重新加载它

向下滚动 uitableview 时,UIView 无法正确显示

仅加载 UITableView 中的可见单元格

UITableView如何在重新加载后继续滚动