我已启用编辑模式并移动单元格,以允许用户按照他们喜欢的顺序定位表格视图内容。我使用Core Data作为数据源,它通过属性“userOrder”对内容进行排序。首次插入内容时,userOrder将设置为随机值。这个想法是当用户移动一个单元格时,该单元格的userOrder会改变以适应其新位置。以下是我在尝试实现此目标时遇到的问题:
成功保存单元格的新位置并调整受影响单元格的所有更改位置。
使数据保持一致。例如,TableView可以很好地处理运动,但是当我单击单元格的新位置时,它会显示以前是该位置的旧单元格的数据。所有受影响细胞的数据也都搞砸了。
我知道我必须在以下方面实现:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {}
我只是不知道如何。如果您使用Core Data,那么apple docs并不是特别有用,就像我的情况一样。
非常感谢任何指导!
答案 0 :(得分:0)
问题1几乎与使用CoreData无关,只需考虑一个简单的数组:
{0 1 2 3 4 A}.
现在用户在数组中移动一些新添加的元素A:
{0 1 A 2 3 4}
因此,从接收索引2的插入元素A开始,所有元素都需要将其索引(在您的情况下为userOrder)递增1。 所以你映射0-> 0,1-> 1,A-> 2,2-> 3,3-> 4等等。
问题2可能有两个或三个来源:
所以也许你可以查看上面的要点,如果没有,你可以考虑发布你的移动算法进行仔细检查。