我真的在寻找这个问题的答案,但没有提出任何可靠的答案。
我正在动态地将UILabel添加到视图中,它们可以是任何大小。 我希望第二个添加的一个被放置在最后一个下方约2个像素,无论是否有字母在该线下方。
我已经尝试过使用各种方法获取标签框架后,将其设置为字体大小但没有外观。框架似乎总是比垂直的实际文本大。
你们有没有想法?
答案 0 :(得分:1)
首先,我尝试将标签的adjustsFontSizeToFitWidth
设置为NO,看看它是否会让你弄乱正常的比例,这似乎是你的目标。
如果这不起作用,您可能需要将字符串绘制到CALayer。创建一个CALayer并将其添加到视图的根层,即:
[yourView.layer addSublayer.yourNewLayerForString].
将子图层的委托设置为将执行绘图的类:
[yourNewLayerForString setDelegate:self];
在该类中实现drawLayer
(您指定为委托的那个)。 drawLayer代码可能有点丑陋,但您可以找到有关如何在图层中绘制字符串的示例。这个看起来不错:addTextToLayer。
然后您可以精确控制字体和字符串大小,并可以调整图层框架和视图框以适合您的目标。