在调整宽度

时间:2017-12-12 10:36:34

标签: ios objective-c uikit uilabel

我需要实现能够在多个UILabel之间平衡字体大小的代码 - 为此,我需要找到可从这些UILabel组中看到的最小字体大小并将其应用于其他他们。

以下是我用来计算字体缩放后UILabel的实际字体大小以适合它的宽度的代码:

NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];
context.minimumScaleFactor = label.minimumScaleFactor;
NSDictionary *attributes = @{NSFontAttributeName : label.font};
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:label.text attributes:attributes];
[attributedString boundingRectWithSize:label.bounds.size
                                       options:NSStringDrawingUsesLineFragmentOrigin
                                       context:context];

CGFloat actualFontSize = label.font.pointSize * context.actualScaleFactor;

问题是它适用于多行UILabel。 我尝试在UILabel numberOfLines = 1上使用它后,它会变得疯狂并且总是给我原始的字体大小。

我尝试从选项中移除NSStringDrawingUsesLineFragmentOrigin - 但它仍然给我错误的结果。

有没有人遇到这个问题,或者你可能有不同的方法在适合宽度后得到最终的字体大小?

0 个答案:

没有答案