12

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

我有一个 UItableView,当用户点击并按住其中一行时,它会进入编辑模式

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

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

我已经拥有的:

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

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

任何帮助,将不胜感激。

4

2 回答 2

0

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

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

“FMMoveTable 是一个 UITableView 子类,它通过简单地点击并按住适当的行而不将表格切换到它的编辑模式来提供移动行” - 来自描述

于 2012-10-21T20:58:49.890 回答
0

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

本质上,您执行以下操作:

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

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

  1. 在表格视图上添加长按手势识别器。
  2. 拖动单元格时创建单元格的快照。
  3. 拖动单元格时,移动快照,然后调用-[UITableView moveRowAtIndexPath:toIndexPath:].
  4. 当手势结束时,隐藏单元格快照。
于 2014-07-03T00:39:41.117 回答