我有一个 UILabel,其中的文本会自动缩小以适应。一旦发生这种情况,我需要知道生成字体的磅值,以便我可以在别处的另一个标签中设置完全相同的大小。
如果我访问 label.font.pointSize 我会返回原始大小,而不是缩小后的大小。所以我然后尝试使用这个 NSString 添加来计算字体大小:
- (CGSize)sizeWithFont:(UIFont *)font minFontSize:(CGFloat)minFontSize actualFontSize:(CGFloat *)actualFontSize forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
但是,这对我也不起作用,因为 if 没有考虑标签的高度约束,只考虑它的宽度。(在我的情况下,字体需要进一步缩小以适应框架的高度)。
这似乎给我留下了一个绝对可怕的选择,那就是反复调用以下函数,直到我找到实际适合框架的最大高度:
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
显然,这将是非常低效和讨厌的。
有没有人有更好的解决方案?
蒂姆