使用自动布局调整大小的 UICollectionViewCell

Posted

技术标签:

【中文标题】使用自动布局调整大小的 UICollectionViewCell【英文标题】:Resizable UICollectionViewCell using Autolayout 【发布时间】:2014-09-26 04:38:21 【问题描述】:

我有一个 UICollectionView,在 Interface Builder 中设置了约束。 CollectionView 的大小根据屏幕大小进行调整。

我希望 CollectionView 中有一个大小相等的方形单元格,它会根据其父视图的大小调整大小。我希望能够同时更改单元格的数量和它们之间的填充,并让 Autolayout 负责调整大小。

我对此进行了一些思考,但我不确定是否要开始。非常感谢您的意见!

谢谢

【问题讨论】:

您在谈论 IB 中的哪些限制?对于单元格的子视图?我认为您不能使用自动布局来调整单元格本身的大小。您需要根据集合视图大小和每行所需的单元格数计算 itemSize(考虑到填充)。 它不一定是在 IB 中设置的约束,可以在代码中。我在考虑单元格内容视图。也许它们会有相等的宽度和高度约束,以及彼此之间的填充约束。 【参考方案1】:

我不知道如何在 Interface Builder 中执行此操作,但您始终可以使用 VFL 来设置约束,其值是从容器视图的大小动态派生的。您要拨打的电话是NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:

【讨论】:

我正在考虑这种方法,但我不确定我会设置什么值才能获得我想要的结果。我不是要求有人为我做这件事,只是朝着正确的方向踢。也许为相同的大小和高度设置一个约束,然后在单元格之间设置一个填充?另外,在哪里设置这些约束的好地方? 我更喜欢在 IB 中设置约束,除非它们需要在代码中动态处理。 它可能就像您建议的那样简单:相等的高度和宽度以及填充。我只是确保指定最小和最大范围(如果适用),这样您就不会遇到比集合视图太小或太宽的单元格。【参考方案2】:

我使用https://github.com/rhodgkins/RDHCollectionViewGridLayout 让它工作

只需要根据布局设置一些参数。适用于所有屏幕尺寸。

干杯!

【讨论】:

以上是关于使用自动布局调整大小的 UICollectionViewCell的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局调整大小的 UICollectionViewCell

如何使用自动布局来调整图像按钮的大小?

RootViewController 视图未使用自动布局调整大小

使用自动布局在 NavigationBar 中自动调整 titleView 的大小

在 IOS 8 中使用自动布局调整单元格大小

使用自动布局调整子视图的大小