ios - UICollectionview 带有动态数据的自定义布局
问题描述
我有一个自定义的 CollectionViewFlowLayout,其中包含数千个通过 REST API 传来的动态分页数据。
我已经实现了 Raywenderlich 的 Pinterest like layout。如果您已经知道单元格高度,那也没关系。但问题是,在我的数据中,图像大小和文本大小是完全动态的。
我正在尝试通过委托方法计算单元格高度,但它没有按我预期的那样工作。
另外,为新的 ui CollectionView Cells 重新计算单元格属性的最佳性能方法是什么?
解决方案
您需要转到您的单元子类并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
}