1

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

enter image description here

然而,当有较大的冠军,我希望UILabel高度降低,以适应较小的字体大小,而不是留在自己的位置空白的差距。目前,我的配置产生这种效果。

enter image description here

我用我的故事板的限制,并没有刻意设置一个固定的高度约束。以下是相关的约束补充说:

enter image description here

我可以在我的配置已经取得了新秀错误,因为我不记得这种效应发生之前,但它给了我一个真实的头痛(和难看的UI )。

+0

根据其他子视图的其他约束条件,您可以调整垂直内容拥抱优先级。在标签上增加它。 – jervine10

+0

@ jervine10标题标签拥有最高的垂直内容,优先于任何其他子视图。 –

回答

0

UILabel设置为自动调整字体大小以适合,它不会自动调整高度的自身

你有几个选择:

  1. 设定基线对齐中心,只是接受,你将有顶部和底部填充

  2. 使用代码来计算的“缩放字体大小”和更新标签的字体大小

0

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

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

+0

但是,我的表格视图怎么知道显示行的高度呢? –

+0

您可以在代码或Interface Builder中设置'rowHeight'。如果根据单元格的内容,每行需要不同的行高,可以使用UITableViewDelegate的['heightForRowAt:'](https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614998-tableview)方法' – Paolo

+0

我想使用我已配置的首选UITableViewAutomaticDimension。 –

0

试试这个,看,它应该根据自己的工作需要:

enter image description here

设置顶部和底部约束属性Greater Than or Equal To并添加水平中心(下车中心y以上海华),并显示该形象。

相关问题