在全新且非常整洁的环境中UICollectionViewCompositionalLayout
- 如何UICollectionViewLayoutAttributes
在初始创建时缓存?
所有已知的方法和属性似乎都在板上,因为新的布局类继承自UICollectionViewLayout
.
回顾“旧”自定义UICollectionViewLayout
方法,据我所知,此类任务的路径是使用方法 prepare() 用 custom-made 填充 a(n) 数组[UICollectionViewLayoutAttributes]
。
据我了解,新的布局类会逐节创建布局,该布局是-> NSCollectionLayoutSection
从我们createLayout()
在 WWDC19 演讲中的“集合视图布局的进步”中看到的方法返回的。而且它似乎只在初始化时这样做一次。
现在,我对 a 进行了子类UICollectionViewCompositionalLayout
化,并且该类layoutAttributesForElements
按预期返回:
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let superAttributes = super.layoutAttributesForElements(in: rect)
print("I am returning attributes: ", supersAttributes)
return superAttributes
}
但由于它们不是手动创建的,我最初在哪里可以一次捕获这些属性以添加到缓存数组中?
这条路径的原因是我正在尝试重新创建一个非常非常高的collectionViewLayout,我需要它可以缩放。layoutAttributesForElements(in: rect)
而这只通过使用缓存、在 zoon 期间修改缓存的属性并在整个生命周期中从缓存中返回来获得(至少在过去)性能。我在 Ray Wenderlich 的教程和其他地方看到的一种技术。
任何输入都会很棒!让我们来了解一下新的更简单的collectionViews 世界吧!
非常感谢您的阅读。