如何使用 UICollectionViewCompositionalLayout 将不同宽度的项目放在一起?

Posted

技术标签:

【中文标题】如何使用 UICollectionViewCompositionalLayout 将不同宽度的项目放在一起?【英文标题】:How to put together items with different width using UICollectionViewCompositionalLayout? 【发布时间】:2021-05-24 10:33:30 【问题描述】:

我正在尝试创建具有相同大小(红色瓷砖)的图像水平列表,最后一项应该是具有不同宽度的“查看全部”单元格(紫色瓷砖):

我一直在努力使用 UICollectionViewCompositionalLayout 来实现这一点,我找不到组和项目的正确组合。

创建一个包含与我的数据源中的图像数量相等的项目的组是否有意义?

let group = NSCollectionLayoutGroup.horizontal(layoutSize: size, subitem: item, count: data[section].count)

然后为紫色瓷砖添加最后一组?

let group = NSCollectionLayoutGroup.horizontal(layoutSize: purpleSize, subitems: [purpleItem])

即使是这样,我如何将这两者结合在一起?

您不必提供任何代码示例,只需描述嵌套组的设置就足够了!提前致谢!

【问题讨论】:

【参考方案1】:

如果您创建具有估计宽度的单个布局项,那么与不同的单元格类型和约束一起应该会给您这个结果。而且您不必从布局设置中访问数据源。

您可以尝试的另一种方法是设置 subitems 数组,如下所示:[red, red, red, red, purple]

【讨论】:

以上是关于如何使用 UICollectionViewCompositionalLayout 将不同宽度的项目放在一起?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?