UILabel 移除下边距

Lau*_*ent 3 margin objective-c uilabel

我在使用 UILabel 时遇到了麻烦。我正在尝试使用 UILabel 以便容器中根本没有边距。我尝试了不同的东西,比如 sizeToFit、boundsToRect 等,但到目前为止还没有得到解决方案。

这是我的代码:

UILabel* saveLabel = [[UILabel alloc] init];
saveLabel = [[UILabel alloc] init];
saveLabel.text = "USER     SAVE";
saveLabel.textAlignment = NSTextAlignmentRight;
saveLabel.layer.borderWidth = 2;
[saveLabel sizeToFit];
Run Code Online (Sandbox Code Playgroud)

当我将此添加到我的视图中时,我希望底部的边框(从边框开始)接触标签的字母,但中间有一个空格。

如果你想看的话,我附上了一张底部效果的图片。 http://oi62.tinypic.com/n62b0w.jpg

我真的不明白为什么会有这个保证金以及如何摆脱它。所有其他边距,顶部,左侧和右侧都可以,只有底部一个。

对此的任何帮助将不胜感激,

谢谢

joh*_*gan 5

该框架包括小写字母(如 g 和 y)的空间,它们在文本基线下方“下降”。在您的情况下,您只使用大写字母,因此您可能希望删除框架的下降部分。您可以通过访问下降器的高度,saveLabel.font.descender然后从安装框架的高度中减去该高度。

[saveLabel sizeToFit];
saveLabel.frame = CGRectMake(saveLabel.frame.origin.x
                             saveLabel.frame.origin.y,
                             saveLabel.frame.size.width,
                             saveLabel.frame.size.height - saveLabel.font.descender);
Run Code Online (Sandbox Code Playgroud)

下面这篇文章有一个很好的图:https : //www.cocoanetics.com/2010/02/understanding-uifont/