Как разрешить UITableView «прыжок» при нажатии строки состояния? - PullRequest
1 голос
/ 29 марта 2020

У меня есть tableViewController с пользовательскими ячейками, каждая из которых содержит textField. Ячейки добавляются в tableView путем нажатия кнопки «Добавить», которая вызывает метод insertRows (at: with :). Ячейки имеют reuseIdentifier и используются повторно.

Проблема : учитывая, что пользователь добавил группу строк и редактирует textField в одной из нижних строк, когда пользователь пытается чтобы прокрутить вверх, нажав строку состояния в верхней части экрана, затем tableView прыгает / глюки при первом нажатии, но затем прокручивается вверх (как и ожидалось) после того, как пользователь нажимает строку состояния во второй раз.

Примечание: этот переход / сбой не возникает, когда редактируемый textField является первым textField, редактируемым в tableView, он происходит только после второго редактирования.

Цель : чтобы TableView мог прокручиваться вверх при нажатии на строку состояния, не скрывая клавиатуру.

Things I ' мы пробовали

  • Установка вручную tableView.scrollsToTop = true
  • Добавление tableView.beginUpdates () перед вызовом insertRows (at: with :) и endUpdates () после
  • Отставка первого респондента после завершения редактирования textField
  • Поиск в Интернете в течение многих часов, чтобы понять, почему это происходит, но безрезультатно

@IBAction func addButtonTapped(_ sender: Any) {
     let indexPath = IndexPath(row: cells.count, section: 0)
     cells.append(cell(text: ""))
     tableView.insertRows(at: [indexPath], with: .none)
} 

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

Прикрепленный GIF показывает скачок / сбой, когда пользователь впервые нажимает на строку состояния, а затем ожидаемое поведение при повторном нажатии строки состояния. TableView Jump / Glitch


Любая помощь будет наиболее ценной. Заранее спасибо!

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