在模型数组中使用分页和数据追加,但有时tableView变得空白且几乎没有闪烁。我不明白为什么会这样。
我正在滚动为tableView滚动滚动向模型添加数据。我该如何正确设置? pageCount and pageNumber
我在请求时得到json响应。我需要在其中使用pageCount。请任何人都可以指导我。
根据json响应,最大pageCount = 9,但它是动态的。
JSON响应:
{
"pageCount": 9,
"pageNumber": 1,
"DataList": [
{
}
]
}
初始化:var listData : [DataList]? = []
服务:
func getListFromServer(_ pageNumber: Int){
serviceGetDataList(PageNumber: pageNumber, callback: {success, result in
do{
if(success){
let decoder = JSONDecoder()
let response = try decoder.decode(ResponseData.self, from: result! as! Data)
self.pageNo = response.pageNumber!
self.pageTotal = response.pageCount!
self.listData?.append(contentsOf: response.DataList ?? [])
self.tableView.reloadData()
})
}
分页功能:
override func viewDidAppear(_ animated: Bool) {
loadMoreItemsForList()
}
func loadMoreItemsForList(){
currentPage += 1
switch currentPage {
case currentPage:
getListFromServer(currentPage)
default:
print("no data")
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (((scrollView.contentOffset.y + scrollView.frame.size.height) > scrollView.contentSize.height ) && !isLoadingList){
self.isLoadingList = true
self.loadMoreItemsForList()
}
}
self.tableView.reloadData()
var rowCount = tableView.numberOfRows(inSection: 0)
var indexPathArray: [IndexPath] = [IndexPath]()
for data in response.DataList{
indexPathArray.append(IndexPath(row: rowCount, section: 0))
row += 1
}
self.tableView.insertRows(at: indexPathArray, with: .automatic)