Как получить размер строки, усеченной UILabel? - PullRequest
0 голосов
/ 12 февраля 2011

Мне нужно найти размер экрана (CGSize) строки, которая будет нарисована в UILabel.Я знаю, что могу использовать:

-(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

Чтобы определить размер строки, он не учитывает максимальное количество строк, которое UILabel позволяет вам указать.

Чтобы перефразировать, если у моего UILabel установлено значение numberOfLines, равное 2, и он получает длинную строку, которая усекается, как мне найти размер (CGSize) строки, которая будет отрисовываться UILabel?Спасибо!

1 Ответ

3 голосов
/ 12 февраля 2011

Вы можете получить свойство шрифта lineHeight и умножить его на количество строк, а затем ввести его как максимальную высоту параметра constrainedToSize:. Примерно так:

UIFont *font = getFont();
CGFloat maxHeight = font.lineHeight * label.numberOfLines;
CGFloat maxWidth = getWidth();
CGSize size = [label.text sizeWithFont:font constrainedToSize:(CGSize){maxWidth, maxHeight} lineBreakMode:label.lineBreakMode];
...