UITableView点击并按住+拖放

时间:2012-06-19 04:31:21

标签: ios uitableview drag-and-drop

我想了解如何执行以下操作:

我有一个UItableView,当用户点击并按住其中一行

时进入编辑模式

一旦进入编辑模式,我需要单元格保持被选中并在用户手指下弹出效果。

用户应该能够拖动弹出的单元格并将其重新定位到另一行,而无需抬起手指。

我已经拥有的东西:

我有一个长按手势识别器,我将表格设置为长按手势识别器选择器中的编辑。

然而,为了拖动单元格,我当前需要抬起手指并重新点击以拖动单元格,这不是我想要的。

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:5)

更好的代码段在这里:

请参阅https://github.com/bvogelzang/BVReorderTableView

(在Xcode 6.x和iOS 8中测试)

答案 1 :(得分:0)

目前有一种解决方法(不够简单):https://stackoverflow.com/a/7501076/326017

我在这里找到了代码段:https://github.com/FlorianMielke/FMMoveTableView

“FMMoveTable是一个UITableView子类,只需点击并按住适当的行即可提供移动行,而无需将表格切换到编辑模式” - 来自描述

答案 2 :(得分:0)

文章Reordering a UITableViewCell from any touch point讨论了这个确切的场景。

基本上,您可以执行以下操作:

  1. 找到UITableViewCellReorderControl(私人课程)。
  2. 展开它,使其跨越整个单元格。
  3. 隐藏它。
  4. 用户现在可以从任何地方拖动单元格。

  5. 另一个解决方案Cookbook: Moving Table View Cells with a Long Press Gesture通过执行以下操作实现了相同的效果:

    1. 在表格视图中添加长按手势识别器。
    2. 拖动单元格时创建单元格的快照。
    3. 在拖动单元格时,移动快照,然后调用-[UITableView moveRowAtIndexPath:toIndexPath:]
    4. 手势结束时,隐藏单元格快照。

答案 3 :(得分:0)

为了将来的参考......我遇到了同样的问题,我发现了另一个问题(Swift - 拖放TableViewCell with Long Gesture Recognizer),有人建议这个教程: https://www.freshconsulting.com/create-drag-and-drop-uitableview-swift/ 对我来说非常合作