集合视图组合布局 - 动态布局

Posted

技术标签:

【中文标题】集合视图组合布局 - 动态布局【英文标题】:Collection View Compositional Layouts - Layout on the fly 【发布时间】:2020-02-28 20:27:48 【问题描述】:

在看到精彩的Advances in Collection View Layout Session 之后,我想知道是否可以使用新的Collection View Compositional Layouts 框架中实现的功能来创建基于以前未知的单元格大小的布局。

我的问题:

想象一个有两个级别的水平图片库,照片可以是“垂直”或“水平”,应用会在需要显示时获取它们,并且它们是随机提供的(“水平”或“垂直”) .所以我们必须用“随机模式”(Pinterest 风格,here is how to do it with UICollectionViewFlowLayout)填充画廊。

我看不到填充单元格的“组”模式,因为布局有无限的可能性,垂直划分可以出现创建组,但也不能。

是否可以使用Collection View Compositional Layouts 存档?


谢谢。

【问题讨论】:

你有没有得到任何地方?我正在尝试在垂直滚动方向上做类似的事情,但没有看到这样做的方法。 @BenjaminHall 和Collection View Compositional Layouts 我做不到。在问题中,您有一个教程链接,该链接介绍如何使用UICollectionViewFlowLayout 进行垂直布局。 【参考方案1】:

当您设置项目布局大小时,您可以使用estimated 布局尺寸使大小取决于其内容。因此,图像视图可以使用约束从内到外设置单元格大小。您在填充单元格时调整图像大小,取决于它是水平还是垂直,并且图像视图采用图像的大小,单元格采用图像视图的大小。

(如果您需要更多控制权,您可以将您的组构建为NSCollectionLayoutGroup.custom,它允许您手动设置每个项目的框架。但是在这种简单的情况下不需要这样的极端,此外,假设您知道布局声明时的框架,你可能没有。)

【讨论】:

如何定义组?作为与组对应的单个图像?

以上是关于集合视图组合布局 - 动态布局的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义集合视图布局快速配置动态单元格高度

iOS 中的动态布局

使用自动布局自定义集合视图单元格的动态高度

在UICollectionView上动态设置布局会导致无法解释的contentOffset更改

具有组合布局的集合视图不适用于标题视图

collectionview 单元格动态宽度打破布局