由于 sizeWithFont 已被弃用,我的代码中有大量sizeWithFont
调用,我需要拼命摆脱这些调用。现在,我已经想出了如何使用boundingRectWithSize
它来代替它,但是,我没有重新进行一百万次调用,而是考虑制作一个包装函数来执行 sizeWithFonts。
所以,这是我想出的方法:
- (CGSize) getSizeForCurrentFont:(UIFont*)font
forWidth:(CGFloat)width
constrainedToSize:(CGSize)size
lineBreakMode:(NSLineBreakMode)lineBreakMode
minFontSize:(CGFloat)minFontSize
actualFontSize:(CGFloat *)actualFontSize
{
// functionality
}
我的目标是只调用设置的值,而其余的将是它们的默认值。因此,如果调用只有字体和宽度,则只会设置它。我确实了解不再支持 fontSize ,但我很感激对此提出建议。
我的问题是:我应该将 font、width、size、lineBreakMode、minFontSize 和 actualFontSize 设置为什么默认值,以免得到奇怪的结果。本质上,我想要相同的结果:
[s sizeWithFont:font
constrainedToSize:size];
与:
[s getSizeForCurrentFont:font
forWidth:width #This is some Default Value#
constrainedToSize:size
lineBreakMode:lineBreakMode #This is some Default Value#
minFontSize:minFontSize #This is some Default Value#
actualFontSize: actualFontSize #This is some Default Value#]
请告诉我是否需要进一步澄清。如果你能提出一个很好的方法来做 boundingRectWithSize,那也很酷。