繁体   English   中英

删除最后一个单元格后防止uitableview滚动

[英]Prevent uitableview from scrolling after removing last cell

我有一个tableview(样式-分组),其中包含的行数超出了其框架的容纳范围,因此您必须滚动才能看到最后一行。 当我删除最后一行时,tableview向下滚动其内容,因此新的最后一行位于框架的底部(有点填充空白空间)。

删除其中的最后一行后,如何防止UITableView滚动? 我希望它保持空白,并且不会自动滚动。

我尝试设置内容插图,但是它似乎并不能阻止滚动。

编辑:我的代码删除行:

func removeLastRow() {
    let indexPath = IndexPath.init(row: self.messages.count - 1, section: 0)

    self.messages.removeLast()
    CATransaction.begin()
    self.tableView.beginUpdates()
    CATransaction.setCompletionBlock { () -> Void in
       // do stuff, add new rows
    }
    self.tableView.deleteRows(at: [indexPath], with: .left)
    self.tableView.endUpdates()
    CATransaction.commit()
}

在删除之前,通过调用tableView:heightForRowAt:恢复单元格的大小,在删除之后,将表格视图的垂直内容偏移量手动设置为当前的垂直内容偏移量,再加上单元格的高度。

let deletedCellHeight = tableView.heightForRowAt(indexPath)

然后:

tableView.contentOffset.x += deletedCellHeight

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM