1

继上一个问题之后,我有一个表格视图,其中填充了 2 个 NSMutableArrays、2 个部分和 2 个部分标题,所有这些都可以正常工作。

incompleteItems = [NSMutableArray arrayWithObjects: @"Item 1", @"Item 2", @"Item 3"... , nil];

completeItems = [NSMutableArray arrayWithObjects: nil];

我进行了设置,以便当用户向右滑动时,单元附件从显示变为复选标记,向左滑动时从复选标记变为显示。手势是使用 handleSwipeLeft/Right 方法实现的。

我想做的是当用户向右滑动时,将不完整项数组中的项目移动到完成项数组中,从而将项目从“不完整”部分移动到“完成”部分。

实现这一目标的最佳方法是什么?我的经验有限,所以这有点超出我的知识范围。

一如既往地感谢任何帮助。

4

2 回答 2

1

您可以简单地将对象从一个数组添加到另一个数组,然后立即将其删除。

-(void)incompleteToCompleteAtIndex:(NSUInteger)index
{
    [complete addObject:[incompleteItems objectAtIndex:index]];
    [incompleteItems removeObjectAtIndex:index];
}

-(void)completeToIncompleteAtIndex:(NSUInteger)index
{
    [incompleteItems addObject:[complete objectAtIndex:index]];
    [complete removeObjectAtIndex:index];
}

由于这只会作为 UI 操作的结果发生,我假设这将发生在主线程上,并且没有理由锁定。

于 2012-12-20T19:56:11.560 回答
0

你需要好看的动画吗?签出:deleteRowsAtIndexPaths:withRowAnimation:insertRowsAtIndexPaths:withRowAnimation:。确保使用beginUpdates和包装这些调用endUpdates

我不知道将单元格从一个 tableView 移动到另一个的简单方法。我可以想象一种方法需要您手动执行 3 步动画,移除单元格(并将其添加到浮动在整个视图层次结构前面的新视图中),将新视图移动到目标位置(您可以需要自己做数学来确定目的地的屏幕坐标),最后是一个附加动画。您可以使用一个完全透明的虚拟单元格,并在动画的第一个和最后一个片段中将其换入/换出,以便为 tableview 提供一些东西来保存您传输的单元格的位置。

于 2012-12-20T20:03:07.237 回答