【问题标题】:UITableView tap and hold + drag and dropUITableView 点击并按住 + 拖放
【发布时间】:2012-06-21 02:29:31
【问题描述】:

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

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

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

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

我已经拥有的东西:

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

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

任何帮助将不胜感激。

【问题讨论】:

标签: ios uitableview drag-and-drop


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

文章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. 手势结束后,隐藏单元格快照。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多