UICollectionView 使用组合布局在同一部分中查看多个单元格类型

UICollectionView multiple cell types in the same section using Compositional layout

我有两种类型的单元格“ProductCell”和“NoImageProductCell”。 数据由 API 提供,因此我无法控制我将获得的产品类型(有或没有图像)。

如何使用 Compositional Layout 在同一部分以不同的单元格大小显示两种类型。

我最终使用了 NSCollectionLayoutGroup.custom,它可以让您分别调整属于一个组的每个项目的大小。

    let items = self.dataSource.snapshot().itemIdentifiers(inSection: 2)
                let group = NSCollectionLayoutGroup.custom(layoutSize: groupSize) { (env) -> [NSCollectionLayoutGroupCustomItem] in
                var customItems = [NSCollectionLayoutGroupCustomItem]()
                items.forEach { (object) in
                    switch object.imageURL {
                    case .none:
                        //calculate frame and append item
customItems.append(NSCollectionLayoutGroupCustomItem(frame: yourFrame))
                    case .some(_):
                        //calculate frame and append item
customItems.append(NSCollectionLayoutGroupCustomItem(frame: yourFrame))
                    }
                }
                return customItems
            }