У моего UITableView
есть куча многоразовых ячеек, и когда я нажимаю на один из них, он переносит меня на другой контроллер вида (через push segue), показывающий детали этой ячейки (скажем, это элемент, поэтому он будет показывать подробности об элементе - имени, цене, изображении и т. д.). Когда я выхожу из этого контроллера просмотра (нажав кнопку «Назад»), UITableView
имеет странное поведение:Чувствительное поведение UITableViewController после появления регулятора вида
a) если он прокручивается до конца, он будет автоматически прокручиваться (около 50 точек), оставив последнюю клетку едва заметной, поэтому мне нужно снова прокрутить назад. Моя ячейка имеет 60 точек для высоты.
b) Полоса прокрутки всегда показывает, а затем исчезает, указывая на то, что что-то движется, что UITableView
(хотя, если не прокручивать снизу, содержимое не будет перемещаться автоматически).
Это происходит в нескольких UITableView
в моем приложении. Я не заставляю перезагружать представление таблицы в viewWillAppear, поэтому я не понимаю, что происходит. Мое содержимое статично после загрузки с сервера (если пользователь не изменит его, а затем перезагрузится). Но просто показывая детали элемента и выскакивая, что VC ничего не меняет в представлении таблицы.
Редактировать: Хорошо, я понял, в чем проблема: я скрываю UIToolbar
при нажатии этого сегмента. Если я держу его всегда видимым (чего я не хочу), он по-прежнему показывает анимацию прокрутки при появлении в моем представлении таблицы, но не прокручивает представление таблицы, если в последних нескольких строках.
Не могли бы вы объяснить более подробно, почему это происходит? Или может кто-то. – Krtko
Его удивительная ... решена аналогичная проблема ... Проблема в том, что всякий раз, когда вы переходите назад с viewcontroller, смещение прокрутки таблицы меняется соответственно. Поэтому вам нужно зафиксировать значение contentoffset в свойстве внутри метода prePareForSegue: (то есть перед навигацией), а затем проверить, что в том же классе внутри viewWillAppear: method. И если он изменился, установите значение свойства scrolloffset в ноль –