iOS - Динамическая высота, управляемая данными, вертикальная прокрутка - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь создать макет в изображении

enter image description here

Вот основные требования:

  • содержимое в каждом разделе управляется данными и извлекается из API.
  • Высота каждого раздела является динамической, в зависимости от количества полей.
  • Высота сцены является динамической.
  • Сцена с вертикальной прокруткой.

Вот что я пытался сделать: - Использование статической ячейки UITableView - Использование стекового представления с прокруткой

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

Есть идеи?

1 Ответ

0 голосов
/ 10 июня 2018

Ваше требование довольно простое и может быть удовлетворено с помощью UITableView.Используйте динамический UITableViewCell.Причина, по которой я выбираю ячейку динамического табличного представления, заключается в том, что вы можете изменить размер ячейки в соответствии с содержимым.Измерьте размер вашего контента внутри tableView:heightForRowAtIndexPath:.

Поток будет следующим:

  1. Инициируйте вызов API
  2. Пока данныеНедоступно, верните высоту ячейки в соответствии с вашим представлением заполнителя (т.е. высотой изображения заполнителя)
  3. Пока данные доступны, обработайте ваши данные и перезагрузите табличное представление
  4. После перезагрузки табличного представления, просмотр таблицы еще раз спросит высоту каждой ячейки, так что это шанс, который вы получите для расчета высоты содержимого.(Я предполагаю, что вы можете измерить высоту строки при заданной ширине строки и шрифте. Пожалуйста, Google, это очевидно.)
  5. вернуть эту вычисленную высоту.

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

...