向其子视图(即 UILabel)添加约束时,无法保持集合视图单元格的固定大小
Posted
技术标签:
【中文标题】向其子视图(即 UILabel)添加约束时,无法保持集合视图单元格的固定大小【英文标题】:Unable to keep a fixed size of collectionview cell when adding constraint to it's subview i.e. a UILabel 【发布时间】:2020-04-14 14:50:27 【问题描述】:我有一个包含 UILabel 的水平集合视图。我在委托方法中提到了集合视图单元格的大小。
并为该标签添加了前导、尾随、高度和垂直中心约束,如下图所示。
但在输出中,标签的宽度会根据文本和集合视图单元格大小而增加或减少。
我想保持集合视图单元格的大小固定,如委托方法中所述。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:两件事。
首先,听起来您可能正在向标签添加宽度约束,该约束等于标签的文本宽度。该宽度约束将强制单元格扩展以满足前导、尾随和现在的宽度约束的要求。相反,使宽度约束等于标签的宽度。
其次,将标签的 .numberOfRows 属性设置为 0。这将使标签分成多条水平线,而不是变宽。
编辑:
可能有帮助的另一件事是将标签上的 horizontalCompressionResistance
属性调整为 249 或更低。
【讨论】:
我认为是相反的?没有设置宽度约束,所以标签会展开,单元格也会随之展开。通过设置宽度约束,标签将被强制为一定的大小,因此单元格将被强制为标签的大小加上前后边距。 是的,我解释错了。我的意思是你不应该有一个宽度约束等于标签的宽度。你可以有一个宽度限制,但它必须是一个基于单元格宽度的设定值。我已经更新了答案以反映这一点以上是关于向其子视图(即 UILabel)添加约束时,无法保持集合视图单元格的固定大小的主要内容,如果未能解决你的问题,请参考以下文章
向添加到 UIWindow 的视图添加约束时,为啥无法设置自动布局约束?