обновить contentOffset в tableView
(при прокрутке)
let oldContentHeight: CGFloat = tableView.contentSize.height
let oldOffsetY: CGFloat = tableView.contentOffset.y
let oldIns = insertCounter
insertCounter += Int(INSERT_MESSAGES)
tableView.reloadData()
let newContentHeight: CGFloat = tableView.contentSize.height
tableView.contentOffset.y = oldOffsetY + (newContentHeight - oldContentHeight)
Это работает правильно - прокрутка вниз, но когда я заменяю reloadData
на insertSection
, это не работает:
let oldContentHeight: CGFloat = tableView.contentSize.height
let oldOffsetY: CGFloat = tableView.contentOffset.y
let oldIns = insertCounter
insertCounter += Int(INSERT_MESSAGES)
let minn = min(insertCounter, Int(dbmessages.count))
print(minn)
if oldIns < minn {
tableView.beginUpdates()
tableView.insertSections(IndexSet(integersIn: oldIns..<minn), with: .automatic)
tableView.endUpdates()
tableView.layoutIfNeeded()
}
let newContentHeight: CGFloat = tableView.contentSize.height
let of = oldOffsetY + (newContentHeight - oldContentHeight)
tableView.contentOffset.y = oldOffsetY + (newContentHeight - oldContentHeight)
Это не прокручивается вниз. В чем проблема ? Как я могу это исправить?