Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UITableView中快速创建分页_Ios_Swift_Uitableview_Pagination - Fatal编程技术网

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。页码。计数可以由您自己的逻辑管理。