UITableView分页为空白,无数据,迅速

问题描述 投票:0回答:1

在模型数组中使用分页和数据追加,但有时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()
        }
    }
ios swift uitableview pagination uiscrollview
1个回答
0
投票
将此代码添加到getListFromServer中以替换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)

© www.soinside.com 2019 - 2024. All rights reserved.