uitableview будет отображать делегата ячейки странно - PullRequest
0 голосов
/ 03 февраля 2019

Я работал над таблицей и застрял в следующей проблеме.

Насколько я понимаю, метод делегата willDisplayCell должен позволить мне получить доступ к текущему дизайну ячейки.

Моя проблема: это не работает должным образом.Эта функция делегата запускается только пять раз при попытке отобразить 80 ячеек.Независимо от чего-либо, кроме этой функции, написание строки кода в функции делегата делает ее работоспособной.

Вот мой код:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    if indexPath.row == comment_arr.count - 1 {
        print("end")
        // (1)self.comment_height.constant =  self.comment_table.contentSize.height + 30
    }
    // (2)self.comment_height.constant =  self.comment_table.contentSize.height + 30
}

Если существует строка (1),это не работаетНо если строка (2) существует, она работает хорошо.

Как мне заставить ее работать?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Сначала получите количество строк в разделе.Затем найдите последний пункт

let totalRow = tableView.numberOfRows(inSection: indexPath.section)
        if(indexPath.row == totalRow - 1)
        {
           print("end")
            return
        }
0 голосов
/ 04 февраля 2019
tableView(_ tableView: UITableView, 
         heightForRowAt indexPath: IndexPath) -> CGFloat

вызывается раньше, чем willDisplayCell

тема была полностью и подробно рассмотрена здесь: Методы TableView

...