Допустим, у меня есть список из 20 строк (á 44px).Если я использую этот код:
tableView.scrollToRow(at: IndexPath(item: 5, section: 0), at: UITableViewScrollPosition.top, animated: false)
, то TableView правильно прокручивается, так что пятая строка находится в верхней части экрана.
Если я делаю то же самое для элемента 18
:
tableView.scrollToRow(at: IndexPath(item: 18, section: 0), at: UITableViewScrollPosition.top, animated: false)
затем tableView также «правильно» прокручивается так, что восемнадцатая строка прилипает к верхней части экрана - показывая только строки 18, 19 и 20, а затем много места под строкой 20.
Как только пользователь каким-либо образом касается tableView, содержимое быстро возвращается назад, так что строка 20 касается нижней части экрана.Это состояние, где 20 находится внизу, это то, чего я хочу достичь в первую очередь.Когда я прошу tableView прокрутить строку 18 в верхнюю часть экрана, я хочу, чтобы она сделала это only , если это естественная позиция прокрутки для tableView, или просто просто прокрутите вниз до tableView..
Требуемое / ожидаемое состояние работает при использовании animated:true
, но не работает при использовании animated:false
- что мне нужно оставить false (потому что мне нужно, чтобы tableView прокручивался до этой позиции, когда пользовательвходит в этот viewController).