首页 > 解决方案 > UICollectionview 带有动态数据的自定义布局

问题描述

我有一个自定义的 CollectionViewFlowLayout,其中包含数千个通过 REST API 传来的动态分页数据。

我已经实现了 Raywenderlich 的 Pinterest like layout。如果您已经知道单元格高度,那也没关系。但问题是,在我的数据中,图像大小和文本大小是完全动态的。

我正在尝试通过委托方法计算单元格高度,但它没有按我预期的那样工作。

另外,为新的 ui CollectionView Cells 重新计算单元格属性的最佳性能方法是什么?

在此处输入图像描述

标签: iosswiftxcodeuicollectionviewuicollectionviewlayout

解决方案


您需要转到您的单元子类并preferredLayoutAttributesFitting(_:)像这样覆盖:

override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes {

                // Ensures that cell expands horizontally while adjusting itself vertically.
                let preferredSize = systemLayoutSizeFitting(layoutAttributes.size, withHorizontalFittingPriority: .required, verticalFittingPriority: .fittingSizeLevel)

                layoutAttributes.size = preferredSize
                return layoutAttributes
    }

推荐阅读