UILabel 高度取决于字体大小

UILabel height depending on font size

我在 UITableViewCell 中使用 UILabel 来显示标题。通常文本不会太长,因此字体可以很大。请注意文本如何像正常情况一样填充 UILabel 的高度。

但是,当有较大的标题时,我希望降低 UILabel 高度以适应较小的字体大小,而不是在其位置留下空白。目前,我的配置产生了这种效果。

我在情节提要中使用了约束,并故意不设置固定的高度约束。以下是添加的相关约束:

我可能在我的配置中犯了一个菜鸟错误,因为我不记得以前发生过这种效果,但这让我很头疼(而且看起来很糟糕 UI)。

删除 Top SpaceBottom Space 约束(取决于您希望标签锚定的位置)。

这将导致标签自动适应文本大小。

试试看,它应该能满足您的需要:

设置顶部和底部约束属性 Greater Than or Equal To 并添加水平中心(Alight Center Y to superview)并显示在此图像中。

UILabel设置为自动调整字体大小以适应时,它不会自动调整高度本身。

您有几个选择:

  1. 将基线设置为居中对齐,并接受顶部和底部填充

  2. 使用代码计算"scaled font size"并更新标签的字体大小