UITableView меняет положение прокрутки при изменении высоты ячейки - PullRequest
0 голосов
/ 29 ноября 2018

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

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if cellsMode[indexPath.row] {
        return 344
    }
else {
        return 140 }
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    self.cellsMode[indexPath.row] = !self.cellsMode[indexPath.row] 
    table.reloadData() 
} 

Я пытался использовать

let indexPath = NSIndexPath(row: cellInex, section: 0)
self.table.scrollToRow(at: indexPath as IndexPath, at: .bottom, animated: false) 

но это не сработало.Как я могу это исправить?

1 Ответ

0 голосов
/ 29 ноября 2018

Просто перезагрузите ячейку, а не всю таблицу, как показано ниже:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    self.cellsMode[indexPath.row] = !self.cellsMode[indexPath.row] 
    tableView.reloadRows(at: [indexPath], with: .automatic)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...