2016-09-12 3 views
4

В течение многих часов я изо всех сил пытался получить динамический расчет высоты строки для запуска UITableViewCells.динамическая высота UITableViewCell с использованием UIStackView

StackView (прижато к полям UITableViewCells contentView) должен позволить мне контролировать высоту ячейки, манипулируя скрытое свойство соображений внутри StackView (так же, как показано здесь: https://stackoverflow.com/a/36250618/606730)

I добавили обязательные параметры динамической высоты в viewContoller так:

self.tableView.rowHeight = UITableViewAutomaticDimension; 
self.tableView.estimatedRowHeight = 44; 

Я не переопределяют heightForRowAtIndexPath как это, где я хочу авто макет сделать магию.

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

Я переопределены setSelected в UITableViewCell, как это:

-(void)setSelected:(BOOL)selected animated:(BOOL)animated{ 
    [UIView setAnimationsEnabled:NO]; 
    [super setSelected:selected animated:animated]; 
    self.viewInsideStackView.hidden = !selected; 
    [UIView setAnimationsEnabled:YES]; 
} 

Это вызывается как Tableview нагрузок или свитков для каждой ячейки. Манипулирование self.viewInsideStackView.hidden должно заставить представление стека пересчитать его высоту. Но это не работает. Я также попытался позвонить layoutIfRequired, но все же неправильный размер появляется, пока я не нажму на ячейку.

+0

Вы можете добавить фотографии вашего Tableview? Один, когда он сначала загружается, и один, когда вы выбрали ячейку? – Mark

+0

Вы когда-нибудь решали это? Я борюсь с той же проблемой. –

ответ

0

попробуйте установить значение дополнительного пространства для вашего зрения стека на что-то другое, чем 0. Я считаю, что это поможет IOS правильно рассчитать высоту ваших клеток, делая Tableview работу

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