【发布时间】:2010-04-14 23:32:55
【问题描述】:
Apple 谈到 UITableView -beginUpdates -endUpdates 块:
如果您不在此块内进行插入、删除和选择调用,则行数等表属性可能会变得无效。
我想知道 -beginUpdates 到底是做什么的。为什么我不将插入/删除代码放在此块中时,行数等表属性可能会变得无效?
【问题讨论】:
标签: iphone uitableview
Apple 谈到 UITableView -beginUpdates -endUpdates 块:
如果您不在此块内进行插入、删除和选择调用,则行数等表属性可能会变得无效。
我想知道 -beginUpdates 到底是做什么的。为什么我不将插入/删除代码放在此块中时,行数等表属性可能会变得无效?
【问题讨论】:
标签: iphone uitableview
表中的行以两种方式更改:(1) 基础数据更改并且表必须重新加载以显示新数据。 (2)用户直接通过插入、删除或拖动的方式编辑表格。块手柄 (2)。
beginUpdates 到endUpdates 块告诉表它正在被直接编辑并且它不应该依赖于其数据源返回的值。如果没有该块,该表将正常调用numberOfRowsInSection 以找出它应该有多少行。如果用户刚刚插入或删除了一行,它将收到不正确的值,因为数据模型可能尚未更新。直到表显示更改并且委托写入数据之后,数据源才会返回正确的值。
您可以将块视为表与其数据源的一种临时解耦。
【讨论】: