Как рассчитать размер 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;