更新tableView
中的contentOffset(滚动时)
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)
它不会向下滚动。问题是什么 ?我该如何解决?