2012-06-19 70 views
10

我想弄清楚如何做到以下几点:的UITableView点击并按住+拖拽

我有一个UITableView,它进入编辑模式,当用户点击并保持行的一个

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

的用户应该能够拖动弹出电池,并将其重新定位到另一行不提起手指。

我已经到位:

我有一个长按手势识别和我设置表到编辑在长按手势识别选择。

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

任何帮助,将不胜感激。

+0

可能重复[重新排序UITableView无重新排序控制]( http://stackoverflow.com/questions/5624730/reordering-uitableview-without-reorder-control) – Senseful

回答

0

在当前时刻有一种变通方法(不是很容易):https://stackoverflow.com/a/7501076/326017

,我发现的代码片段在这里:https://github.com/FlorianMielke/FMMoveTableView

“FMMoveTable是UITableView的子类,它提供了通过简单的移动行按住一个适当的行不表切换到它的编辑模式” - 从描述

+0

这里可能是一个更好的代码片段:请参阅https://github.com/bvogelzang/BVReorderTableView。没有毛病。 – SwiftArchitect

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. 当手势结束时,隐藏单元快照。