使UILabel的高度,以适应其中包含的字符(自动布局)
问题描述:
我已经看到,UILabel
内在尺寸似乎并不完全符合它包含的字符。使UILabel的高度,以适应其中包含的字符(自动布局)
正如你可以在图片中看到,标签对顶部和底部一定的余量。我可以使用基线(title.baseline == subtitle.top
)使“字幕”更接近“TITLE”,但我也想将“TITLE”与其父顶对齐。
如果可能,我想使用自动布局约束。
答
快速修复
如果您的字体大小是固定的标签,你可以尝试继承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 - 我希望它适用于任何字体,大小和字符。我将不得不考虑所有这些,并“煮”一个神奇的数字。 –
字体的小写字母下降到基线以下。内在的大小允许。 – picciano
是的,我知道。我想用我正在使用的角色的“当前”固有尺寸,而不是任何可能的角色。由于我在那里使用大写字母,因此我知道我不会有小写字母。 –
我在这里发布了一个解决方案:http://stackoverflow.com/a/34073666/1121497 –