如何添加UILabel使其文本比另一个UILabel的“文本”下方2个像素?

时间:2012-04-17 22:53:07

标签: xcode uilabel

我真的在寻找这个问题的答案,但没有提出任何可靠的答案。

我正在动态地将UILabel添加到视图中,它们可以是任何大小。 我希望第二个添加的一个被放置在最后一个下方约2个像素,无论是否有字母在该线下方。

我已经尝试过使用各种方法获取标签框架后,将其设置为字体大小但没有外观。框架似乎总是比垂直的实际文本大。

你们有没有想法?

1 个答案:

答案 0 :(得分:1)

首先,我尝试将标签的adjustsFontSizeToFitWidth设置为NO,看看它是否会让你弄乱正常的比例,这似乎是你的目标。

如果这不起作用,您可能需要将字符串绘制到CALayer。创建一个CALayer并将其添加到视图的根层,即:

[yourView.layer addSublayer.yourNewLayerForString]. 

将子图层的委托设置为将执行绘图的类:

[yourNewLayerForString setDelegate:self];

在该类中实现drawLayer(您指定为委托的那个)。 drawLayer代码可能有点丑陋,但您可以找到有关如何在图层中绘制字符串的示例。这个看起来不错:addTextToLayer

然后您可以精确控制字体和字符串大小,并可以调整图层框架和视图框以适合您的目标。