В течение многих часов я изо всех сил пытался получить динамический расчет высоты строки для запуска 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
, но все же неправильный размер появляется, пока я не нажму на ячейку.
Вы можете добавить фотографии вашего Tableview? Один, когда он сначала загружается, и один, когда вы выбрали ячейку? – Mark
Вы когда-нибудь решали это? Я борюсь с той же проблемой. –