2015-12-03 34 views
0

我已经看到,UILabel内在尺寸似乎并不完全符合它包含的字符。使UILabel的高度,以适应其中包含的字符(自动布局)

enter image description here

正如你可以在图片中看到,标签对顶部和底部一定的余量。我可以使用基线(title.baseline == subtitle.top)使“字幕”更接近“TITLE”,但我也想将“TITLE”与其父顶对齐。

如果可能,我想使用自动布局约束。

+0

字体的小写字母下降到基线以下。内在的大小允许。 – picciano

+0

是的,我知道。我想用我正在使用的角色的“当前”固有尺寸,而不是任何可能的角色。由于我在那里使用大写字母,因此我知道我不会有小写字母。 –

+0

我在这里发布了一个解决方案:http://stackoverflow.com/a/34073666/1121497 –

回答

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;发挥,从而获得所需的输出。

+0

谢谢。我想过这样做。这是一个相当黑客,但... - p - 我希望它适用于任何字体,大小和字符。我将不得不考虑所有这些,并“煮”一个神奇的数字。 –

相关问题