UITableView 点击并长按 + 拖放

13

我想了解如何实现以下内容:

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

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

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

我已经完成的部分:

我已经实现了长按手势识别器,并在其中设置了表格为编辑状态。

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

希望得到任何帮助。


更好的代码片段在这里:请参见 https://github.com/bvogelzang/BVReorderTableView。(已在Xcode 6.x和iOS 8中进行测试) - SwiftArchitect
可能是重新排序UITableView而不使用重新排序控件的重复问题。 - Senseful
2个回答

1

这篇文章从任何触摸点重新排序UITableViewCell讨论了这种情况。

基本上,你需要执行以下步骤:

  1. 找到UITableViewCellReorderControl(一个私有类)。
  2. 将其扩展以覆盖整个单元格。
  3. 隐藏它。
  4. 现在用户就可以从任意位置拖动单元格了。

另一种解决方案,使用长按手势移动表视图单元格的食谱,通过以下方式实现相同的效果:

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

0

这里可能有更好的代码片段:请参见https://github.com/bvogelzang/BVReorderTableView。没有任何故障。 - SwiftArchitect

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接