Кажется, что tableView.setContentOffset(, animated: )
не работает должным образом, когда tableView.reloadRows(at: , with: )
был вызван ранее.
Если был вызван reloadRows
setContentOffset
, то он перемещает TableView вверх и вниз на несколько пикселей, но не прокручивает до правильная позиция. Только при повторном вызове setContentOffset
прокрутка выполняется правильно.
Это известная проблема, ошибка или я что-то не так делаю?
Код
Проблема может быть воспроизведена с помощью простого UIViewController
, который содержит только UINavigationBar
с двумя UIBarButtonItems
и UITableView
.
Кнопки BarButton используются для запуска reloadRows
и setContentOffset
. TableView Содержит простой список из 10 стандартных UITableViewCell
с текстом немного. Это отлично работает
Нажмите правую кнопку бара, чтобы вызвать
reloadRows
. Первая строка будет перезагружена (не видно) Нажмите левую кнопку бара, чтобы снова вызвать
setContentOffset
. TableView будет только слегка двигаться вместо правильной прокрутки Нажмите левую кнопку бара, чтобы снова вызвать
setContentOffset
. Теперь прокрутка снова будет работать.
Есть идеи, как предотвратить это странное поведение?