количество строк в UILabel - PullRequest
       12

количество строк в UILabel

0 голосов
/ 26 сентября 2010

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

int lines = [cellDetailTextLabel.text sizeWithFont:cellDetailTextLabel.font constrainedToSize:cellDetailTextLabel.frame.size lineBreakMode:UILineBreakModeWordWrap].height /16;

но это не идеально, потому что в некоторых случаях UILabel имеет длину 3 строки, а приведенный выше код возвращает только 2, но это не относится ко всем 3 строкам UILabel.

1 Ответ

1 голос
/ 26 сентября 2010

Лучше всего рассматривать текстовый макет UILabel как черный ящик (он делает такие забавные вещи, как автоматическая настройка размера шрифта, когда текст становится слишком длинным).

Вместо этого рассмотрите возможность использования методов определения размера UIView:

// Ask the label to shrink (or grow) until it fits its text:
[cellDetailTextLabel sizeToFit];
// Get the frame.
CGRect r = cellDetailTextLabel.frame;
// Move its origin to below cellDetailTextLabel
r.origin.y = CGRectGetMaxY(r);
// Set its size to the size of the second label
r.size = cellLabel2.frame.size;
// Finally, move the second label
cellLabel2.frame = r;

Я заметил странное поведение с изменением размера текста на iPhone 4 (иногда ярлыки - это слишком большая строка или около того); Я не уверен, что это исправлено в 4.1.

...