5

在全新且非常整洁的环境中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 世界吧!

非常感谢您的阅读。

4

0 回答 0