UILabel 移除底部边距

UILabel remove bottom margin

我在使用 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];

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

我附上底部效果图,要看的话。 http://oi62.tinypic.com/n62b0w.jpg

我真的不明白为什么会有这个边距以及如何去掉它。 其他边距,上左右都可以,只有下边距。

如有任何帮助,我们将不胜感激,

谢谢

框架包括 space 小写字母,例如 g 和 y,它们 'descend' 低于文本的基线。在您的情况下,您只使用大写字母,因此您可能希望删除框架的下降部分。您可以通过 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);

下面这篇文章配图不错: https://www.cocoanetics.com/2010/02/understanding-uifont/