使UILabel高度适合它所包含的字符(使用autolayout)

时间:2015-12-03 00:40:58

标签: ios autolayout alignment uilabel

我已经看到UILabel内在大小似乎并不完全符合它所包含的字符。

enter image description here

正如您在图片中看到的那样,标签在顶部和底部有一些边距。我可以使用基线(title.baseline == subtitle.top)使“Subtitle”更接近“TITLE”,但我还想将“TITLE”与其父级对齐。

如果可能,我想使用autolayout约束。

1 个答案:

答案 0 :(得分:1)

快速修复

如果您的字体大小对于标签是常量,您可以尝试继承UILabel并覆盖- (CGSize)intrinsicContentSize

-(CGSize)intrinsicContentSize {
    CGSize intrinsicSize = [super intrinsicContentSize];
    intrinsicSize.height -= 8; // Works good for system font size 17.0
    return intrinsicSize;
}

您可能需要使用intrinsicSize.height -= 8;来获得所需的输出。