Eli*_*der 5 uikit ios uicollectionview swift uicollectionviewflowlayout
我正在创建一个UICollectionView具有动态高度的单元格并使用estimatedItemSize属性UICollectionViewFlowLayout(Apple Docs Reference)。
虽然,我注意到一旦我设置了estimatedItemSize属性,我prefetchItemsAt的UICollectionViewDataSourcePrefetching委托方法就不会被调用。
func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath])
如果我没有设置estimatedItemSize,预取将再次开始工作。这是已知的行为还是我在这里做错了什么?请帮忙。
示例代码:
class CollectionViewController: UICollectionViewController {
var layout: UICollectionViewFlowLayout = {
let layout = UICollectionViewFlowLayout()
let width = UIScreen.main.bounds.size.width
layout.estimatedItemSize = CGSize(width: width, height: 100)
return layout
}()
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 10.0, *) {
collectionView?.prefetchDataSource = self
}
collectionView.collectionViewLayout = layout
// Register cell classes
self.collectionView.register(UINib.init(nibName: "CollectionViewCell", bundle: nil), forCellWithReuseIdentifier: reuseIdentifier)
}
}
extension CollectionViewController: UICollectionViewDataSourcePrefetching {
// MARK: UICollectionViewDataSourcePrefetching
func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {
// Fetch more cells
print("prefetchItemsAt called.")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
228 次 |
| 最近记录: |