滚动到底部时 TableView 加载更多单元格
Posted
技术标签:
【中文标题】滚动到底部时 TableView 加载更多单元格【英文标题】:TableView loading more cell when scroll to bottom 【发布时间】:2017-10-30 16:45:17 【问题描述】:我创建了一个 tableView,当用户滚动到最后一个单元格时,将加载更多数据。在 willDisplayCell 中,我实现了这段代码,参考了堆栈溢出中的类似问题。但是当我滚动到底部时,它不会加载一次数据,它会创建一个循环并多次调用 loadMore 函数。
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
let lastData = self.data!.count - 1
if indexPath.row == lastData
currentPage += 1
self.loadData(currentPage)
func loadData()
self.showLoadingView()
apiCALL(callback: data
self.jsonDATA.append(contentsOf: data)
self.tableView.reloadData()
)
【问题讨论】:
可以添加loadData
方法的代码吗?
你有多少个部分?
@trungduc 添加。 1 节
请告诉我numberOfRowInSection
方法和showLoadingView
方法
仅供参考 - 滚动到底部时自动加载更多数据是一种糟糕的用户体验。让用户根据需要选择加载更多。
【参考方案1】:
添加布尔参数以避免无限循环。
var isLoading = false
func loadData()
isLoading = true
self.showLoadingView()
apiCALL(callback: data
self.isLoading = false
self.jsonDATA.append(contentsOf: data)
self.tableView.reloadData()
)
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
let lastData = self.data!.count - 1
if !isLoading && indexPath.row == lastData
currentPage += 1
self.loadData()
【讨论】:
但是您设置 isLoading = false 是 apiCall 并在 willDisplay 中检查它是否为 false。那么它不会连续调用 loadData() 吗?以上是关于滚动到底部时 TableView 加载更多单元格的主要内容,如果未能解决你的问题,请参考以下文章