2014-11-05 2 views
0

Ячейка tableview довольно сложная, есть одна метка, которая может динамически меняться из-за ее содержимого.Почему результат, когда я получаю systemLayoutSizeFittingSize tableviewcell, всегда равен нулю?

MyTaskTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
[self configureCell:cell forIndexPath:indexPath withCellIndentifier:cellIdentifier]; 
[cell setNeedsUpdateConstraints]; 
[cell updateConstraintsIfNeeded]; 
NSLog(@"%f",[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height); 

это показывает в экране является правильным, содержание плотно есть пустые строки между концом строкой содержимого и нижней частью ячейки. но высота всегда выводит 0, я не могу динамически установить высоту ячейки, что происходит?

+0

Вам необязательно вычислять высоту, автоматическая компоновка позаботится об этом. – gabbler

ответ

0

Единственный способ установить высоту зрения клеточного с - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

Если вы хотите иметь динамическую высоту, вы должны сделать что-то в этой функции.

+0

Это не единственный способ. Если все строки имеют одинаковую высоту, просто установите вместо этого свойство 'rowHeight' вида таблицы. – rmaddy

+0

Да, в этой функции я хочу получить [cell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize] .height, поэтому я могу вернуть значение высоты. но значение всегда равно 0, я путаю – leizh007

+0

@maddy да, но высота ячеек не может быть динамической в ​​этом случае. –

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