【问题标题】:why use reloadRows in beginUpdates and endUpdates为什么在 beginUpdates 和 endUpdates 中使用 reloadRows
【发布时间】:2021-10-07 20:12:52
【问题描述】:

在许多其他帖子中,他们仅在 beginUpdates 和 endUpdates 之间使用 reloadRows。

喜欢这个

self.tableView.beginUpdates()
self.tableView.reloadRows(at: [indexPath], with: .fade)
self.tableView.endUpdates()

但是当我使用这种方式并且只使用没有 beginUpdates 和 endUpdates 的 reloadRows 时, 我不知道有什么区别。

为什么在 beginUpdates 和 endUpdates 中使用 reloadRows??

【问题讨论】:

  • 正如你所说。将其用于单个操作没有任何好处。它用于多个插入/删除/移动操作。

标签: ios swift uitableview


【解决方案1】:

这只是一种不好的做法,不会伤害

完全没有理由。

beginUpdates() / endUpdates() 对于同时进行多个 insert/delete/move 操作很有用。

方法对单个操作无效,调用reloadRows完全没用

【讨论】:

  • 所以当我只使用reloadRows时,只使用没有开始和结束??
  • 是的,正是?
  • @vadian - 想象一个应用程序,您出于许多不同的原因从许多不同的地方订购对表格的许多更改(不好的做法,但它可能会发生)。在这些情况下,(a) 更改数据数组和 (b) 实际更改表视图,当然 (a)-(b) 必须以原子方式发生,中间没有任何内容。考虑您可能添加/删除/等的“其他”进程 - 每个进程都像往常一样需要开始/结束对。 imo 你只使用 reloadRows 的调用,事实上,需要一个开始/结束对,否则它可能会踩到其他人。
猜你喜欢
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 2016-03-19
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多