У меня есть tableView
с одним пользовательским прототипом cell
. Это cell
имеет три labels
(название, цена, подробности), где каждый из них загружает свой текст с помощью CoreData
, поэтому их высота не постоянна. heightForRow atIndexPath
выполнен до cellForRow atIndexPath
, поэтому я могу установить только одну высоту для всех ячеек. Но мне нужно, чтобы все они имели разный размер.
То, что я пробовал, находится в cellForRow atIndexPath
Я получаю всю высоту этикетки и доставляю ее до tableView.rowHeight
. К сожалению, он устанавливает, что все ячейки имеют одинаковую высоту.
Мой вопрос: Есть ли способ или способ установить высоту каждой ячейки отдельно, в зависимости от того, сколько пространства необходимо для отображения всех этикеток внутри?Есть ли способ установить высоту ячейки после загрузки компонентов, но до ее отображения?
ответ
Попробуйте это в виду сделал нагрузки
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44.0; // set to whatever your "average" cell height is
К сожалению, это был не ответ в моем случае. Он растягивал высоту клетки почти на весь экран. Я проверил свои ограничения в раскадровке, если какой-либо из них в прототипе ячейки не делает rowHeight настолько большим, но они не были. Все еще не знаю, почему они так велики. – mcgtrt
@mcgtrt показать мне ваш стол с ограничениями. – rv7284
Что я сделал было:
- набор ограничений с нуля (все границы элемента для просмотра содержимого ячейки)
- используется как это было предложено @ rv7284:
tableView.estimatedRowHeight = 150 tableView.rowHeight = UITableViewAutomaticDimension
с одной разницей - не в viewDidLoad
, а в viewWillAppear
.
Все метки имеют ширину и высоту после загрузки некоторого текста и будут помещены в ОЗУ.
Вы пробовали любой подход из Интернета? –
Это считается одним из самых популярных вопросов в теге iOS в SO. Найдите, как установить автоматические измерения для ячейки, и вы найдете ответ. –
На самом деле, я пробовал исследования, описанные вами двумя, но не смог найти удовлетворительного ответа, поэтому есть вопрос, на который мой вопрос. – mcgtrt