Обновление высоты ячейки TableView по мере взаимодействия содержимого ячейки - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть UITableView, который содержит количество ячеек. В приведенном ниже примере каждая из этих двух строк содержит UICollectionView, управляющий тегами. Первоначальная загрузка работает правильно, и tableView изменяет размер строк правильно на основе высоты UICollectionView.

enter image description here

В методе viewDidLoad я установил следующие конфигурации для tableView:

        tableView.rowHeight = UITableView.automaticDimension
        tableView.estimatedRowHeight = UITableView.automaticDimension

Тогда в методе viewDidAppear я призываю к обновлению tableView следующим образом:

   override func viewDidAppear(_ animated: Bool) {
        tableView.beginUpdates()
        tableView.endUpdates()
    }

ПРОБЛЕМА 1: Этот вид работ, за исключением того, что оживляет увеличение высота строки tableView. Есть ли способ исправить это только при начальной загрузке?

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

enter image description here

Возможно, потому что он внутри tableView cell, потому что обычно collectionView просто автоматически изменяет размеры. См. Скриншот ниже, когда collectionView находится за пределами tableView.

enter image description here

Если прокрутить tableView, строка будет правильной изменен как часть процесса удаления / повторного использования. См. Ниже:

enter image description here

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

ПРОБЛЕМА 2: Как исправить Изменение высоты строки tableView в зависимости от изменений ее содержимого?

1 Ответ

0 голосов
/ 26 февраля 2020

Проблема # 1 - в viewDidAppear использовать tableView.reloadData() вместо beginUpdates.

Проблема # 2 - вызвать tableView.reloadRows(), когда пользователь взаимодействует с содержанием UICollectionView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...