如何将TableView1中的单元格移动/重新排序到TableView2

mam*_*mcx 6 drag-and-drop uitableview ipad ios4

我有几个UITableViews,在iPad屏幕上有不同的数据源.

我需要将一个单元格从第一个tableView复制/移动到第二个,类似于如何使用其他语言的ListBox.

现在,我可以重新排序单元格,但移动仅限于tableView.我想拖动tableView1中的单元格并放入tableView2中.

PD我可以使用任何其他控件来存档它.我看一下AQGridViewDTGridView,但是布局基于具有不同#items的列.如果我可以使用此控件或其他模拟列,那么我可以接受解决方法.

更新:

我希望这些链接可以提供帮助:

在UITableView中观察捏合多点触摸手势

这是最接近的答案:

在ipad中的两个表之间拖放

我知道如何从视图中获取图像,我可以使用手势识别器检测到拖动,因此我已经完成了所有设置但没有图形开发方面的专业知识,因此不知道如何将其置于运动状态...

小智 2

这绝对是一个非常有趣的问题,我希望我有时间编写一些测试代码,看看我即将概述的想法是否真正可行。我希望这至少能为您指明正确的方向。

UITableViewCell 是 UIView 的子类,因此我将创建一个名为 DraggableTableViewCell 的 UITableViewCell 子类,以便我们可以处理触摸事件,然后执行以下步骤:

  1. 创建 DraggableTableViewCell 的实例并将其配置为看起来像选定的单元格。
  2. 将新单元格添加为视图的子视图,该视图是两个表的公共超级视图,位于与原始单元格相同的位置。
  3. 更新源表视图的数据源并使用以下命令从表视图中删除原始单元格deleteRowsAtIndexPaths:withRowAnimation:
  4. 通过响应来移动显示屏上的单元格touchesMoved:withEvent:
  5. 收到后touchesEnded:withEvent:,验证单元格是否有点接近其他表视图,并确定插入新单元格的索引路径
  6. 更新目标表视图的数据源并调用insertRowsAtIndexPaths:withRowAnimation:
  7. 使用漂亮的动画从其超级视图中删除可拖动单元格。

整个过程需要由控制屏幕上各种表视图的视图控制器来编排。