将 UILabel 拉伸到 UICollectionViewCell 的全宽

Posted

技术标签:

【中文标题】将 UILabel 拉伸到 UICollectionViewCell 的全宽【英文标题】:Stretch UILabel to full width of UICollectionViewCell 【发布时间】:2015-05-22 20:43:56 【问题描述】:

这听起来像是一件微不足道的事情,但由于某种原因,我无法弄清楚如何使用 AutoLayout 来完成这项工作。

我在 Interface Builder 中有一个带有两个子视图的 UICollectionViewCell

UICollectionViewCell
  - UILabel
  - UILabel

UICollectionViewCell 具有动态宽度高度,因此我想使用 AutoLayout 将第一个 UILabel 的框架设置为类似这样。

CGRectMake(5, 5, collectionViewCell width, collectionViewCell height-10);

但是,如果我选择 UICollectionViewCell 和 UILabel,然后单击最左侧的图标以“添加新的对齐约束”,则没有可用的选项(例如后缘)。

【问题讨论】:

【参考方案1】:

这些菜单项未启用,因为您选择的两个项目没有共同的超级视图。

选择UILabel,而不选择UICollectionViewCell

Auto Layout 已经知道单元格是标签的父视图,并且知道将标签的边缘固定到单元格。

更新:

“固定”工具用于确定大小或项目之间的间距。在你的 在这种情况下,您想设置标签和单元格之间的空间。

“对齐”工具用于使项目居中,或按 一个边缘。例如,如果您的单元格中有两个标签,您可以 确保一个标签与另一个标签的基线对齐。

【讨论】:

即使我只选择一个标签,“添加新的对齐约束”都不可用。 您需要使用“固定”(中间)图标将标签固定到单元格的contentView。 (对齐图标会将标签与同级控件对齐。)

以上是关于将 UILabel 拉伸到 UICollectionViewCell 的全宽的主要内容,如果未能解决你的问题,请参考以下文章

UILabel 文本在应用缩放变换时被压缩/拉伸

UILabel的抗压缩抗拉伸以及控件的约束简述

使用 NSLayoutConstraints 在 UITextView 中将 UILabel 居中

UILabel 垂直对齐缺少的空间

强制文本在 UILabel 中垂直居中

使用自动布局保持 UILabel 居中