ios - Objective c 中 UITableView 的滚动、分页或加载更多技术

标签 ios objective-c uitableview pagination lazy-loading

海,我是 iOS 应用程序开发新手。在我的项目中,我从 Web 服务获取 4000 条响应数据,我需要将其显示在 tableview 上,但这里的条件是我最初只能显示 30 条记录,一旦用户滚动我必须加载更多记录。

最佳答案

您可以通过以下两种方式进行管理:
1) 手动
这里你需要做的是,你需要取两个NSMutableArray ,比如说 responseArray 和 tblArray。从该 responseArray 包含您的网络服务的响应和 tblArray 将管理 UITableView count.
通过这个你可以初步显示一组数据,例如10、所以int count = 10 , 通过添加 first 10 record from responseArray to tblArray 。当用户向下滚动时,您可以从 responseArray 获取 11-20 条数据,并使用

将它们添加到 tblArray
for(int i = 10; i < 20; i++)
{
    [tblArray addObject:[responseArray objectAtIndex:i]]
}
[<your TableView Name> reloadData];
count += 10;

2) 服务器端的 Handel
使用此选项,您可以轻松处理所有内容。
为此,您只需将当前的计数/分页值传递给服务器,服务器就会相应地响应您。
例如:最初您现在没有任何记录。所以你可以在网络服务参数中传递0
一旦您得到回复,您将有 10 条回复记录。在您的 UITableView 中显示它们.
现在,当用户向下滚动时,您可以在此处管理数组计数
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
在上述方法中,您可以将计数值增加 1,也可以将其设置为等于数组计数。目前count += 1count += <yourArrayName>.count .
之后,您再次将计数值作为您的网络服务参数传递,您将在响应中获得接下来的 10 条记录。您需要通过 [<yourArrayName> arrayByAddingObjectsFromArray:<your resposeArray>]; 将其附加到数组中.
无论使用哪种方式,您都可以解决问题。但我个人建议选择第二个选项

关于ios - Objective c 中 UITableView 的滚动、分页或加载更多技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41392477/

相关文章:

iphone - 为什么我的 UIPickerView 崩溃了?

iphone - 附件 Action segue (UITableViewController)

ios - 如何限制 UITableView 行重新排序到一个部分

ios - 表格 View 单元格高度

iphone - 什么是像 UIKeyboardFrameEndUserInfoKey 这样的常量,用于 iphone 中的附加日文键盘面板?

objective-c - 更改标准“关于”面板的大小

ios - 将 NSManagedObject 复制到 Swift 中的临时 NSManagedObject

ios - 更新 tableView 时断言失败

ios - Spritekit - 使用手势同时用多个手指绘制多条线

ios - 对于 Swift 5 和 iOS 12.2+,我应该将 "Always Embed Swift Standard Libraries"更改为 NO 吗?