我的应用程序中有一个表格视图,我正在将不同类型的单元格加载到其中。我需要将页码作为一、二等传递给服务,并在第一页结束时加载它。对于我正在加载的第一个,计数是 10,之后当滚动结束时,我需要加载下一个。我正在使用 Rest 客户端 Web 服务。这是我的 json 网络服务。
{
"userId":2,
"encryptPassword":"50ec0d1b0559dbba51a58bed38aabf7bc6066641",
"pagination":{
"lastId":0,
"resultsPerPage":10
},
"status_id":1,
"request_type_id":2,
"isAgent":false,
"searchKey":""
}
好的,假设您正在ping服务器以获取前10个数据并将其显示到tableview
现在您必须做什么。
- 采用全局
int
变量,例如int lastLoadedId=0;
- 当您解析数据时,只需将上次加载的 id 存储在变量
lastLoadedId
即可跟踪您现在的位置。 - 实现
-(void)scrollViewDidScroll: (UIScrollView*)scrollView
委托方法,以了解您处于底部,并且需要新的下一个数据集。
-
-(void)scrollViewDidScroll: (UIScrollView*)scrollView
{
float scrollViewHeight = scrollView.frame.size.height;
float scrollContentSizeHeight = scrollView.contentSize.height;
float scrollOffset = scrollView.contentOffset.y;
if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
{
// you are in the end ping server with lastLoadedId for new data
}
}
-
- 获取新数据集后,只需将它们附加到
tableview
底部
即可
UITableView并没有真正的"分页"概念。它确实有您可能使用的部分。例如,您可以指定 10 个部分,每个部分有 10 个单元格(或行)。 每个部分可以具有不同数量的单元格。
每个部分可以有页眉和/或页脚。 您可以将页码放入每个部分的页脚中。