我需要实现能够在多个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
- 但它仍然给我错误的结果。
有没有人遇到这个问题,或者你可能有不同的方法在适合宽度后得到最终的字体大小?