我遇到了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];
当我将此添加到我的视图中时,我希望底部的边框(从边框开始)触摸标签的字母,但两者之间有一个空格。
如果你想看,我附上了一个底部效果的图片。 http://oi62.tinypic.com/n62b0w.jpg
我真的不明白为什么这个边缘存在以及如何摆脱它。 所有其他边距,顶部,左边和右边都很好,只是底部边缘。
对此的任何帮助都将非常感激,
由于
答案 0 :(得分:4)
框架包括小写字母的空格,如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);
以下文章有一个很好的图表: https://www.cocoanetics.com/2010/02/understanding-uifont/