【问题标题】:Why are attributes such as row count maybe invalid, if I don't call -beginUpdates?如果我不调用 -beginUpdates,为什么行数等属性可能无效?
【发布时间】:2010-04-14 23:32:55
【问题描述】:

Apple 谈到 UITableView -beginUpdates -endUpdates 块:

如果您不在此块内进行插入、删除和选择调用,则行数等表属性可能会变得无效。

我想知道 -beginUpdates 到底是做什么的。为什么我不将插入/删除代码放在此块中时,行数等表属性可能会变得无效?

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    表中的行以两种方式更改:(1) 基础数据更改并且表必须重新加载以显示新数据。 (2)用户直接通过插入、删除或拖动的方式编辑表格。块手柄 (2)。

    beginUpdatesendUpdates 块告诉表它正在被直接编辑并且它不应该依赖于其数据源返回的值。如果没有该块,该表将正常调用numberOfRowsInSection 以找出它应该有多少行。如果用户刚刚插入或删除了一行,它将收到不正确的值,因为数据模型可能尚未更新。直到表显示更改并且委托写入数据之后,数据源才会返回正确的值。

    您可以将块视为表与其数据源的一种临时解耦。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2020-03-03
      • 2017-10-07
      相关资源
      最近更新 更多