Как рассчитать размер UIFont, если текст в метке ограничен, чтобы соответствовать ширине?

Представьте себе UILabel, шириной 200 пикселей и высотой 50 пикселей. Метка имеет текст внутри, а метка уменьшает размер текста, чтобы он соответствовал метке. Но теперь, как бы вы получили размер этого UIFont, как это видно на этикетке? Предположим, что размер шрифта был задан с огромными 100, а ярлык сжимает его до 15. И тогда вы хотите сделать несколько других меток с небольшим текстом, который имеет одинаковый размер шрифта. Есть ли способ получить размер шрифта UIFont после сжимания метки?

Ответ 1

Если вы передадите размер UILabel и breakMode и т.д., чтобы:

CGSize  size = [label.text sizeWithFont:label.font minFontSize:10 actualFontSize:&actualFontSize forWidth:200 lineBreakMode:UILineBreakModeTailTruncation];

actualFontSize должен быть тем, что вы ищете.

UPDATE:

Вышеупомянутое устарело. Используемый метод:

- (CGRect)textRectForBounds:(CGRect)bounds
     limitedToNumberOfLines:(NSInteger)numberOfLines

Здесь пример

CGSize  size = [label textRectForBounds:label.bounds
     limitedToNumberOfLines:1].size;