moveRowAtIndexPath不刷新单元格的内容

sam*_*tte 8 iphone uitableview ios5

iOS 5终于添加了一个moveRowAtIndexPath:toIndexPath:方法UITableView.问题是,调用它只会移动行,它不会更新/重绘它.这样做的唯一方法似乎是找到单元格并直接调用setNeedsDisplay.但这很棘手,因为你永远不知道细胞是否已被移动.

我也无法调用reloadRowsAtIndexPaths:,因为我不允许将2个动画应用于同一个beginUpdates-endUpdates块内的单个行.

我可以想到一些可行的解决方法,比如将整个事物分成2个动画块.但我想知道我是否遗漏了一些东西,因为整个行为对我来说似乎很奇怪.

sam*_*tte 14

最后收到Apple关于此问题的正式回答:

Engineering已根据以下信息确定此问题的行为符合预期:

只有插入和更新会导致从数据源请求单元格(第一个因为它是新的,第二个因为您已明确告诉表视图更新单元格).删除和移动不会更新内容,因为这不会隐含在正在执行的操作中.如果您需要在更新期间更改单元格的内容,只需进入单元格并更改内容.