Проблемы с автопоставкой в ​​uitableviewcell - PullRequest
0 голосов
/ 04 декабря 2018

Мне, как обычно, трудно, чтобы исправить ограничения.Вот как работает мой просмотр таблицы:

Это дисплей по умолчанию.Высота ячейки составляет 57. enter image description here Когда вы нажимаете на ячейку, я изменяю высоту выбранной ячейки на 90, чтобы она отображала эту информацию: enter image description here

Моя задача - установить ограничения, чтобы они выглядели точно так же, как на обоих изображениях.Каково лучшее решение для этого?

Было бы проще, если бы я сделал два представления и поместил их в свой uitableview, чтобы были установлены ограничения для конкретного представления вместо рамки ячейки, которая изменяется напользователь щелкнул и т. д. Я загрузил свой проект, если кто-то хочет получить лучший обзор происходящего:

https://ufile.io/u2y5p

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Предположим, вы отображаете данные в TableView из массива моделей.Сохраните свойство в классе вашей модели с именем isExpanded и установите его значение по умолчанию false.

Теперь используйте следующий код:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let dataModel = self.arrayOfModels[indexPath.row]
    return dataModel.isExpanded ? 100 : 50
}

При выборе строки:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let dataModel = self.arrayOfModels[indexPath.row]
    dataModel.isExpanded = true
    self.tableView.reloadRows(at: [indexPath], with: .automatic)
}

Дайте мне знать, если у вас есть какие-либо сомнения или вам нужно больше разъяснений.

0 голосов
/ 04 декабря 2018

Вы также можете поместить свою информацию в UIStackView и сделать ее невидимой, пока вы не нажмете на ячейку, используйте UITableViewAutomaticDimension, чтобы сделать высоту ячейки динамической, поэтому, когда вы сделаете эту информацию видимой, перезагрузка UITableView будетсделать высоту вашей клетки выше

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