gpt4 book ai didi

ios - 为什么 insertRowsAtIndexPaths 总是导致 TableView 滚动到顶部?

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:17 24 4
gpt4 key购买 nike

几个小时以来,我一直在努力解决这个问题,但每次我尝试这样的事情时:

    self.dataArray.append(newCellObj)

然后我这样做:

    self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
self.tableView.endUpdates()

UITableView 会自动滚动到页面顶部。

即使我尝试:

    self.tableView.scrollEnabled = false
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
self.tableView.endUpdates()

即使完全禁用滚动,UITableView 仍然会滚动到顶部。调用 insertRowsAtIndexPaths 后,究竟是什么导致 ScrollView 滚动到顶部?

我对这个问题唯一的解决办法是使用这个:

    self.tableView.reloadData()

相反。如果我改用 reloadData 就好了,但我会失去我真正想保留的漂亮动画。

我也有 self.tableView.scrollsToTop = false 并且我已经尝试过许多其他类似的配置,这些配置可能会以某种方式禁用滚动,但是,在 insertRowsAtIndexPaths

最佳答案

我遇到了与 OP 相同的问题。此外,有时我的一些表格 View 单元格会变成“空白”并完全消失,这导致我找到 this related question。 .

对我来说,解决方案是执行以下操作之一:

  • 实现 func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
  • 禁用自动布局
  • 在我的 UITableView 上设置更准确的 estimatedRowHeight

关于ios - 为什么 insertRowsAtIndexPaths 总是导致 TableView 滚动到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com