UITableView Нумерация страниц и фильтрация UItableview Swift IOS - PullRequest
0 голосов
/ 23 апреля 2020

Я использую следующий метод для загрузки большего количества данных в мое табличное представление, и он успешно загружает данные через API.

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if indexPath.row == (paymentList?.response?.data?.count ?? 1) - 1 {
            if totalSize > paymentList?.response?.data?.count ?? 1 {
                if self.pageNo == self.currentPage {
                    self.pageNo += 1
                    self.getPaymentDetails(page: pageNo)
                }
            }
        }
    }

func getPaymentDetails(page: Int) {
        MBProgressHUD.showAdded(to: self.view, animated: true)
        APIFunctions.instance.getPaymentDetailsList(page: 1, success: { (resData) in
            do {
                MBProgressHUD.hide(for: self.view, animated: true)
                let jsonDecoder = JSONDecoder()
                let resObj = try jsonDecoder.decode(PaymentListModel.self, from: resData)
                if resObj.statusCode == 200 {
                    self.totalSize = resObj.response?.total ?? 0
                    self.currentPage = resObj.response?.currentPage ?? 0
                    if page == 1 {
                        self.pageNo = 1
                        self.paymentList = resObj
                    } else {
                        for data in (resObj.response?.data)!  {
                            self.paymentList?.response?.data?.append(data)
                        }
                    }
                    DispatchQueue.main.async {
                        MBProgressHUD.hide(for: self.view, animated: true)
                        self.tblPayment.reloadData()
                    }
                } else {
                    var errorMsg = ""
                    for text in resObj.fault ?? ["nil"] {
                        errorMsg.append(text)
                        errorMsg.append(" ")
                    }
                    self.alert(message: errorMsg, title: "Alert!")
                }
            } catch {
                print("JSONSerialization error:", error)
            }
        }) { (error) in
            MBProgressHUD.hide(for: self.view, animated: true)
            print("\(error)")
        }
    }
}

На моем экране также есть панель поиска. Я хочу отфильтровать данные по общим данным, включая данные, которые не загружаются с использованием нумерации страниц. Возможно ли тогда, как и если нет, есть ли альтернатива? Заранее всем спасибо за помощь!

...