У меня есть код с кучей вызовов 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 больше не поддерживается, но буду признателен за предложения по этому поводу.
Мой вопрос: каковы значения по умолчанию, которые я должен установить для шрифта, ширины, размера, lineBreakMode, minFontSize и factFontSize, чтобы я не получал странных результатов. По сути, я хочу получить тот же результат для:
[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, это тоже будет круто.