Nano Hash - криптовалюты, майнинг, программирование

Высота ячейки Tableview с внутренним tableView

У меня есть tableView, в котором каждая ячейка содержит другой tableView с динамической высотой строки. Мой вопрос: как я могу установить высоту строки первой таблицы в соответствии с высотой внутреннего tableView? Я использую этот код, но он не работает должным образом.

var heights: [CGFloat] = []
var loades: [Bool] = []

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

      return self.heights[indexPath.row]

}



 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "eventCell", for: indexPath) as! EventCell

        cell.date.text = ev.date

        cell.delegate = self
        cell.event = ev

        self.heights[indexPath.row] = cell.tv.frame.height

        if self.loades[indexPath.row] == false{

            self.loades[indexPath.row] = true
            tableView.reloadRows(at: [indexPath], with: .none)
        }

        return cell}
09.08.2018

  • Сначала получите глобальную переменную для высоты. Во-вторых, добавьте наблюдателя в представление дочерней таблицы, чтобы получить размер содержимого дочерней таблицы после загрузки/перезагрузки дочерней таблицы. И в ячейке для строки по пути индекса загрузите дочернюю таблицу. В наблюдении вы получите размер содержимого представления дочерней таблицы. Назначьте высоту размера содержимого в глобальной переменной высоты, затем перезагрузите представление основной таблицы. 09.08.2018
  • @Krimi спасибо, как я могу добавить наблюдателя в дочерний tableView? 09.08.2018
  • Пожалуйста, изучите этот пример stackoverflow.com/a/34518445/3070139. 09.08.2018
  • @Krimi спасибо за помощь 10.08.2018

Ответы:


1

Я бы попытался получить размер содержимого вложенной таблицы в вашем методе heightForRow.

09.08.2018

2

Я надеюсь, что вы можете получить доступ к своему tableview.contentSize.height, contentSize получает значение всего содержимого таблицы, если ваше представление таблицы является динамическим, содержимое этой высоты вы можете разделить на количество строк, которые у вас есть. Это простое решение, некоторые из них:

let size = tableView.contentSize.height
let cellSize = size / models.count

где модели - это массив объектов, напечатанных в tableviewcell внутри tableview

Рекомендовать: поместите ограничение по высоте внутри вашей ячейки в ваш tableView и попробуйте обновить с помощью суммы de sizeCell

cell.tableViewInsideCell.reloadData()
cell.heightConstraint.constant = tableView.contentSize.height

и установить

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

      return UITableViewAutomaticDimension

}
09.08.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..