Swift:在向下滚动时将行添加到顶部-tableView跳转

时间:2018-12-19 20:12:45

标签: swift tableview cell

我有一个带有动态高度单元格的tableView。

如果在顶部一直滚动时将新的单元格添加到顶部,则它会正确设置动画。

但是,如果在向下滚动时在顶部添加一个单元格,则tableView会跳转。


有没有办法使它平滑?甚至更好地保持位置?

视频https://youtu.be/wLNV_Kmkq0M


高度计算代码:

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        return UITableViewAutomaticDimension
    }
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.section == 1 || indexPath.section == 2 {
            return WorldMessageIdsStore.shared.nearby.getCellHeight(indexPath: indexPath, expanded : self.currentSelectedIndexPath == indexPath ? true : false, depending: indexPath.section == 1 ? true : false ) ?? UITableViewAutomaticDimension
        } else {
            return UITableViewAutomaticDimension
        }
    }

单元格添加部分的代码:

WorldMessageIdsStore.shared.worldMessages = newWorldMessages // updating the model
self.tableView.beginUpdates()
self.tableView.deleteRows(at: deleteIndexes, with: .fade)
self.tableView.insertRows(at: insertIndexes, with: .fade)
self.tableView.endUpdates()

有人可以帮我吗?

0 个答案:

没有答案