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