UILabel 自动布局适合

Posted

技术标签:

【中文标题】UILabel 自动布局适合【英文标题】:UILabel AutoLayout fit 【发布时间】:2014-12-03 11:22:42 【问题描述】:

我有一个包含描述和标题标签的表格单元格。我想描述标签以使文本最多容纳 3 行,标题也可以这样做,但最多 2 行。我可以做到这一点。我遇到的问题是将描述贴在底部,并将标题放在描述上,如下所示。

我找到了使用框架的解决方案,但我想知道是否可以仅通过自动布局来实现这一点

【问题讨论】:

【参考方案1】:

使用自动布局,您可以通过设置以下约束来实现。

    为描述标签设置常量前导、尾随、底部空间约束。 为标题标签的描述标签设置恒定的前导、尾随、垂直间距。

    为描述和标题标签设置恒定的高度约束。

    选择描述标签并进入尺寸检查器,设置内容拥抱优先级、内容抗压缩优先级垂直值为1000。

    在这些优先级下方的尺寸检查器中,您可以看到约束。 单击高度约束右侧的向下箭头,然后选择“选择并编辑”。 并将优先级设置为小于 1000。(比如 800)。默认为 1000。

    对标题标签重复步骤 4,5。

    在属性检查器中,将标题通道的“行”设置为 2,将描述标签设置为 3。 (如果将行设置为 0,它将显示完整的内容)

希望这会有所帮助。

【讨论】:

【参考方案2】:

是的,可以在情节提要中为 TitleLabel 选择 NumberOfLines 属性为 0 并根据需要选择 LineBreks 意味着它会根据文本自动适应任意数量的行添加称为leadingSpaceToContainerMargin 的约束,TopSpace 到TopLayoutGuide,Width 设置为Equal,Height 设置为GreaterThanOrEqual。

对于描述标签,还将 TitleLabel 的 NumberOfLines 属性设置为 0 并根据需要选择 LineBreks 并添加诸如leadingSpaceToContainerMargin、VerticalSpacing、Width 设置为 Equal、Height 等约束设置为 GreaterThanOrEqual。

【讨论】:

我已将描述与单元格底部边缘对齐,并将行数设置为 3,但 UIlabel 高度确实会增加以包裹文本 你有没有按照上面的流程进行 发现了问题。问题是它仅在我滚动表格并且单元格重新加载后才有效。知道有什么问题吗? 该问题导致 AutoLayout Constraints 仅再次检查约束

以上是关于UILabel 自动布局适合的主要内容,如果未能解决你的问题,请参考以下文章

自动布局在 x 轴上居中 uilabel 适合内容,uiimage 跟随在左侧

自动布局以动态调整 UILabel 大小不起作用

自动布局约束使 UILabel 对点击更敏感

只需要修复 UIButton 和 UILabel 的自动布局问题

如何使用自动布局调整视图大小以适合标签子视图?

使更改 UILabel 文本不触发自动布局