UITableViewCell автоматическое измерение не работает хорошо - PullRequest
0 голосов
/ 30 января 2019

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

imageвот как я получил свою табличную ячейку

, объявленную в

func viewDidLoad() {
    self.cabinetVC.estimatedRowHeight = 260
        self.cabinetVC.rowHeight = UITableView.automaticDimension
    }

    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        return UITableView.automaticDimension
    }
}

Ответы [ 2 ]

0 голосов
/ 30 января 2019

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

Например:

---------------
       |
   ---------
   | label |
   ---------
       |
---------------
0 голосов
/ 30 января 2019

Вы должны прокомментировать или удалить этот метод делегата,

/*func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {

        return UITableView.automaticDimension
}*/

Вы уже предоставляете некоторое статическое значение в viewDidLoad, которое поможет правильно определить размер ячейки tableView.

Попробуйте поделиться результатами.

РЕДАКТИРОВАТЬ: Для меток 3x3 в ячейке, вы можете сделать это следующим образом:

1) Возьмите вертикальный стекПросмотр

2) Добавить3 Горизонтальный stackView к нему.

3) Добавьте 3 метки к каждому горизонтальному stackView

4) Установите numberOfLines в ноль

5) Установите равные ограничения для всех внутренних стековых представлений и меток.

6) Установите начальные, верхние, конечные и нижние значения для всех стековых видов и меток.

Here is how it will look.

Для надписи вы надеваетенет текста - установите ноль, и он будет обработан правильно.

...