2015-11-15 4 views
2
cell.bodyText.numberOfLines = 0 

cell.bodyText.text = newsBody 
cell.bodyText.sizeToFit() 

Я установил количество строк до 0, потому что число линий может меняться (я получение новостных статей и поскольку каждый новостной статьи, очевидно, отличается по длине, numberOfLines является 0)Как определить количество линий, используемых в UILabel (Swift)?

Если я не использую sizeToFit() после определения newsBody на этикетке и проверьте высоту ярлыка (cell.bodyText.frame.size.height), я получаю действительно большие числа (когда я протестировал его, статья с 25 строками текста, высота была, по-видимому, 4000). Если я использую sizeToFit, а затем проверьте (21 - это высота, которую я установил UILabel в раскадровке).

Как я могу получить точное представление о том, сколько строк находится в UILabel или даже на высоте метки?

ответ

1

Предполагаю, что вы делаете эту работу в tableView(_:cellForRowAtIndexPath:). Это неверно для запроса окончательного макета. Попробуйте использовать метод делегирования tableView(_:willDisplayCell:forRowAtIndexPath:). Это вызывается непосредственно перед отображением ячейки и является подходящим местом для разработки любых окончательных макетов, поскольку все было применено в этот момент.

+0

Это все еще не решает мою проблему. Я все еще получаю точные номера – Schuey999

+0

В 'willDisplayCell',' cell.bodyText.frame.size' не соответствует размеру, который вы видите на экране? –

+0

К сожалению, нет. Я понятия не имею, что происходит. У меня никогда не было этой проблемы до – Schuey999

Смежные вопросы