即使文本长度为一行,多行UILabel高度也会增加

时间:2014-11-18 17:14:50

标签: ios objective-c uilabel

我在UILabel内使用tableViewCell。一些单元格的文本是一行,有两行。我设置了尾随空格,从超视图约束到标签的前导空间和顶部空间。以下是设置:

  • lines = 0
  • 换行:自动换行(也尝试了其他选项)

如果文本跨越特定长度,由于某种原因,标签高度似乎已增加以容纳2行,但文本只有一行。如下图所示(背景为红色供参考): enter image description here

例如,在第一行中,实际文本是一行,但与其他行相比,高度会增加。

有什么理由可能会发生这种情况吗?我没有在代码中的任何位置设置高度。

修改

另外,我使用以下内容在整个应用程序中为UILabel设置了自定义字体:

[[UILabel appearance] setFont:myFont];

我不确定这是否会导致任何问题..

此外,约束集的屏幕截图是:

enter image description here

3 个答案:

答案 0 :(得分:2)

我知道它很奇怪,之前我确实遇到了同样的问题,这是因为我设置的内容拥抱优先级没有太多的知识。我通过删除标签并再次添加它来解决它。那就是。

答案 1 :(得分:2)

遇到同样的问题。 检查内容拥抱优先级后获得相同的结果。 最后发现它是由标签配置中标量选项卡中的标签首选宽度设置为显式引起的。

未选中并已解决=)

答案 2 :(得分:0)

我遇到了NSAttributedString的问题,但与lineSpacing的{​​{1}}属性一起使用。我完全以编程方式使用自动布局,NSMutableParagraphStyle设置为numberOfLines。多线文本工作正常,直到我想添加行间距,此时我遇到了这个问题。调整内容拥抱和压缩阻力对我来说没有任何作用,也没有使用0 UILabel属性(我目前不在)。

修正了将preferredMaxLayoutWidth应用于文字字符串中确切字符数的问题:

NSRange

取自这个答案:https://stackoverflow.com/a/16057159/482557