2015-05-01 3 views
0

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

myLabel.text = "A\nB\nC\nD..." 

но клетка остается ее высота даже на разрыв линии, весь текст можно увидеть, просто отображаться поверх ячейки. Как я могу позволить моей высоте TableViewCell следовать за моим ярлыком, чтобы получить больше, например, форсировать макет?

Я попробовал обновить значение после изменения метки, но ничего не произошло.

myCell.frame.size.height = 200 //if calculate myself 

ответ

0

, если вы хотите изменить высоту вашего UITableViewCell, вы должны вернуть высоту в методе делегата UITableView в -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath, вы можете caculate высоту текста releted ячейки.

+0

Нельзя ли установить высоту после загрузки таблицы? Потому что после этого я могу изменить свой текст. –

+0

Да, вы можете. Когда вы меняете данные ячейки, вы можете перезагрузить этот вызов, используя 'tableView reloadRowsAtIndexPaths: withRowAnimation:' или перезагрузить все tableView 'tableView reloadData', затем метод' - (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath 'может быть вызван, и вы возвращаете самую новую высоту для ячейки, – Ian