在 UICollectionViewCell 上设置约束的问题

Posted

技术标签:

【中文标题】在 UICollectionViewCell 上设置约束的问题【英文标题】:Issues setting constraints on UICollectionViewCell 【发布时间】:2019-11-10 11:19:00 【问题描述】:

我创建了一个 UICollectionViewCell (.xib),我只想在其中添加一个标签和一些简单的约束,例如:

但是,这样做会搞砸一切。无论我在UICollectionViewDelegateFlowLayout 上选择的大小,单元格都将始终使用标签的大小!我在这里做错了什么?我是否应该不对 CollectionViewItems 使用约束,而是使用 translatesMaskIntoConstraints = true? 谢谢!

编辑:这是我的预期:

这就是我实际拥有的(只要我添加了约束):

edit2:已修复!通过将标签的内容拥抱优先级更改为 10(例如,或更低)。但是......如果视图中没有其他约束,为什么?如果有人能回答,我将不胜感激,因为我可以回答这个问题并给出这个解决方案,但我无法解释为什么它完全解决了它,所以无论如何这不是一个正确的答案。

【问题讨论】:

请分享预期结果和当前结果以便更好地理解。 【参考方案1】:

你有两种方法:你可以委托给一个单元格来计算自己的高度,或者你可以为高度设置固定大小。

如果你想要第一种情况,请阅读其他related answers

如果你想要固定尺寸,你应该在标签上做一个固定的高度。标签正在根据contentSize 计算自己的大小,因此您的约束在单元格的固定大小问题上失败了

【讨论】:

你好。感谢您的回答。虽然,我不太确定你是否完全理解我的问题。请检查更新的问题好吗?谢谢! @Mykod 你好!拥抱是有效的,因为这样你的单元格大小在调整大小时会更优先。查看问题的性质: UILabel 根据内容有自己的大小,因此由于它的大小和边缘的偏移量,它正在尝试调整单元格的大小。你可以做什么:不是通过前导/尾随/底部/顶部对齐,而是将其限制在单元格的中心

以上是关于在 UICollectionViewCell 上设置约束的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 UICollectionViewCell 上设置 .reuseIdentifier

在 UICollectionViewCell 中更新 UITableView

如何在 UICollectionViewCell 中添加 UICollectionView?

如何在 UICollectionViewCell 上设置 UILabel?

UICollectionViewCell 边框/阴影

如何在 iOS 7 中刷新 UICollectionViewCell?