使用 PagedView 时如何将 CollectionViewCell 的边缘固定到 CollectionView

Posted

技术标签:

【中文标题】使用 PagedView 时如何将 CollectionViewCell 的边缘固定到 CollectionView【英文标题】:How to pin the edges of a CollectionViewCell to the CollectionView when using PagedView 【发布时间】:2016-02-20 21:59:50 【问题描述】:

我正在使用 AutoLayout 并且有一个启用了分页的 collectionView。我希望每个 CollectionViewCell 都是它的 CollectionView 容器的宽度和高度。但是,在 AutoLayout 上,当我选择 CollectionViewCell 并尝试将其边缘固定到父级 (CollectionView) 时,这些选项是灰色的。

我在这里设置了单元格大小,但实际上我希望单元格的宽度和高度根据 collectionView 的大小增长/缩小。 CollectionView 应用了自动布局约束。

Arrange > Position View > Fill Container 看起来可能是我正在寻找的东西,但这些选项也显示为灰色。

【问题讨论】:

【参考方案1】:

将集合视图单元格的边缘固定到集合视图本身的边缘的选项显示为灰色的原因是,如果这样做,您将无法向任何方向滚动。如果您可以将单元格的前沿限制为等于集合视图的前沿,并且您对相应的尾随、顶部和底部边缘执行相同的操作,则第二个或第三个单元格将不再有空间......对吧?

所以你想去的方式是实现一个flow layout 并利用它 collectionView:layout:sizeForItemAtIndexPath: 方法。在此方法中,您可以动态计算单元格的大小并返回适当的值。如果您的所有单元格都应具有相同的大小,它会变得更容易,您可以简单地设置流布局的itemSize 属性。

【讨论】:

以上是关于使用 PagedView 时如何将 CollectionViewCell 的边缘固定到 CollectionView的主要内容,如果未能解决你的问题,请参考以下文章

使用 RETURNING INTO 子句和 BULK COLLECT 时如何返回整行

将 varchar 值“Collect_Date”转换为数据类型 int 时转换失败

将 BULK COLLECT 与 rownum 一起使用

如何在不使用collect()和for循环的情况下将一个(IP地址)的特定部分与RDD python pyspark中另一列中的其他IP地址进行比较

oracle plsql中同时记录类型、Collection和Bulk collect

如何使用collect_list?