ios - Swift - 自定义大小的 UITableViewCell 中的 UICollectionView 分页
问题描述
我正在实现自我调整,其中UITableViewCell
包含UICollectionView
根据从 API 接收到的项目数量扩展其高度。
视图的结构如下
UITableView
UITableViewCell
UICollectionView
UICollectionViewCell
UICollectionViewCell
UICollectionViewCell
当UICollectionView
接收到新数据时,UITableViewCell
帧将更新为以下代码
layoutIfNeeded()
collectionView.reloadData()
collectionView.collectionViewLayout.invalidateLayout()
collectionView.layoutIfNeeded()
collectionView.snp.updateConstraints { make in
make.height.equalTo(collectionView.collectionViewLayout.collectionViewContentSize).priority(.high)
}
有问题的部分是将滚动分页添加到UICollectionView
. 自调整代码会导致触发请求willDisplay cell
的每个单元格调用它来触发,它会获取新数据,更新高度,再次触发 API 请求,这是一个无限循环。UICollectionView
// Fetch more data
UICollectionView
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if indexPath.item == collectionView.numberOfItems(inSection: indexPath.section) - 1 {
// Fetch more data
}
}
知道如何避免这个循环吗?谢谢。
解决方案
推荐阅读
- vb.net - 如何使文本框只接受整数?VB
- sql - ERP:数据库设计方法
- code-snippets - 如何在网站中插入动态代码片段?
- postgresql - 使用 openlayers 将空的多行字符串保存到 postgis
- 4d-database - 4D 期望带有指针和数组的变量
- java - apache kafka分区,java
- laravel - Laravel 5:如何使用 array_get 方法访问带有点的属性
- arrays - 在 PowerShell 上用另一个数组中的元素替换数组中的元素
- javascript - 我无法在本机反应中更新数组项的状态
- unix - Tcl error wrong #args: 应该是“set varName ?newValue?”