UITableView прокрутка на перезагрузке данных

На самом деле вам не нужно изменять прототип object и добавлять туда функцию. Следующее должно хорошо работать для вашей цели.

var __next_objid=1;
function objectId(obj) {
    if (obj==null) return null;
    if (obj.__obj_id==null) obj.__obj_id=__next_objid++;
    return obj.__obj_id;
}
1
задан Asger Amrahov 18 January 2019 в 13:41
поделиться

2 ответа

Я добавил этот код для работы. я знаю, что это не настоящее решение, но пока работает.

tableView.scrollToRow(at: IndexPath(row: newsList.count - myPageSize, section: 0), at: .bottom, animated: false  )
0
ответ дан Asger Amrahov 18 January 2019 в 13:41
поделиться

Я также искал эту проблему, и до сих пор я не нашел не жестко закодированное решение, но, по крайней мере, нашел следующее решение, которое отлично подходит для моих нужд (оно почти такое же, как у вас). ):

extension UITableView {

    func reloadDataWithoutAnimation(scrollingAt desiredIndexPath: IndexPath, at desiredScrollPosition: UITableView.ScrollPosition) {
        UIView.performWithoutAnimation {
            reloadData()
            scrollToRow(at: desiredIndexPath, at: desiredScrollPosition, animated: false)
        }
    }

}

Использование:

let indexPath = IndexPath(row: desiredRow, section: desiredSection)
tableView.reloadDataWithoutAnimation(scrollingAt: indexPath, at: desiredScrollPosition)

Надеюсь, это поможет.

0
ответ дан Ángel Téllez 18 January 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: