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