Ios 在UITableView中快速创建分页
我有Ios 在UITableView中快速创建分页,ios,swift,uitableview,pagination,Ios,Swift,Uitableview,Pagination,我有UITableView,显示缓存数组中的数据 我想在UITableView上按如下结构进行分页: 1) 当我使用UITableView查看时,它会显示所有缓存数据(这是我做过的,而且很有效) 2) 当用户向下滚动并if caching data left 5调用函数,将新的10个数据加载到数组中,并在UITableView中的底部显示,然后添加重新检查(当表行显示20行中的15行时,调用函数加载更多数据并添加) 例如:在cach数组中,我有10个数据,函数load new和in 表中显示了2
UITableView
,显示缓存数组中的数据
我想在UITableView
上按如下结构进行分页:
1) 当我使用UITableView查看时,它会显示所有缓存数据(这是我做过的,而且很有效)
2) 当用户向下滚动并if caching data left 5
调用函数,将新的10个数据加载到数组中,并在UITableView
中的底部显示,然后添加重新检查(当表行显示20行中的15行时,调用函数加载更多数据并添加)
例如:在cach数组中,我有10个数据,函数load new和in
表中显示了20行数据
我尝试这样做:
public func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
print(indexPath.row)
let lastItem = array.count - 1
if indexPath.row == lastItem {
loadMoreData()
}
}
func loadMoreData {
for _ in 0...9 {
//load data from server
}
tableView.reloadData()
}
取一个Bool变量检查数据是否从api加载
var isLoading = false
添加以下代码:
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if !isLoading && indexPath.row == array.count - 5 {
isLoading = true
loadMoreData()
}
}
从api获取数据后,设置isLoading=false
var isLoading = false
希望这对您有所帮助:)您有什么问题?@SPatel如何在结尾处为左至5行创建检查并需要添加更多数据?@SahilManchanda我不需要向服务器发送页码,我需要从后端加载更多页码。您只需将参数与pageNo
一起传递,即可指定需要哪个页面的数据。所以,在调用api之后,您需要在当前数据源中追加数据,并将页码计数增加1。页码。计数可以由您自己的逻辑管理。