在tableView中快速更新contentOffset

时间:2019-03-25 11:18:03

标签: swift

更新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)

它不会向下滚动。问题是什么 ?我该如何解决?

0 个答案:

没有答案