iOS 5最后添加了一个moveRowAtIndexPath:toIndexPath:
方法到UITableView
。问题是,调用它只会移动行,它不会更新/重绘它。唯一的方法似乎是直接找到单元并调用setNeedsDisplay。但是这很棘手,因为你永远不知道单元格是否已经移动。moveRowAtIndexPath不刷新单元格的内容
我也不能拨打reloadRowsAtIndexPaths:
,因为我不允许在同一个beginUpdates-endUpdates
区块内的单个行上应用2个动画。
我可以想到的解决方法有很多,例如将整个事件分成2个动画块。但我想知道我是否错过了一些东西,因为整个行为对我来说似乎很古怪。
不确定,但请尝试查看'beginUpdates'和'endUpdates'。您可能能够跟踪正在移动的indexPath,并在“endUpdates”中将其更改为适当的单元格(如果已移动)。 – runmad
在endUpdates取消该单元格的待定动画之后调用任何新行动画函数。换句话说,单元格会重绘,但移动动画不会再发生。调用'setNeedsDisplay'也有类似的效果。 – samvermette
提交错误报告:http://openradar.appspot.com/10457435 – samvermette