【问题标题】:UITableView - move cell - How to enter dragging mode without long press?UITableView - 移动单元格 - 如何在不长按的情况下进入拖动模式?
【发布时间】:2013-03-26 10:24:40
【问题描述】:

我正在使用标准 UITableView 编辑模式通过拖放移动单元格。就像一个魅力,完美地集成到我的核心数据模型和一切。

但是,在可用性方面,我不喜欢用户必须长按编辑附件 (|||)。我想将 UILongPressGestureRecognizer 的最短持续时间更改为 0.1f。

问题:我似乎无法访问正确的手势识别器。 UITableViewCell 的gestureRecognizers-array 为空,UITableView 的gestureRecognizers 数组只包含私有识别器:

UIScrollViewDelayedTouchesBeganGestureRecognizer UIScrollViewPanGestureRecognizer UISwipeGestureRecognizer UIGobblerGestureRecognizer

我查看了几个 github-Projects: https://github.com/bvogelzang/BVReorderTableView https://github.com/FlorianMielke/FMMoveTableViewhttps://github.com/mystcolor/JTGestureBasedTableViewDemohttps://github.com/shusta/ReorderingTableViewController

他们都专注于重新设计 UITableView,因此您不必访问内置的编辑模式 - 而是可以在任何地方长按任何 UITableViewCell 而无需进入编辑模式。

作为我只是想更改内置编辑模式的 minimumPressDuration(实际上可以将拖动手势的“访问点”限制到附件视图)我不愿意使用这些自定义实现可能容易出错和麻烦。

期待您的帮助!谢谢!!

干杯, 克里斯

【问题讨论】:

  • 如果您不长按,视图将如何区分滚动和拖放?如果你刚开始从一个单元格拖动,手势就像滚动一样。或者你的所有单元格都适合表格视图框架,所以你不需要滚动?
  • 好问题,这是我的想法: - 每当在 Drag-Handle-Accessory-View (|||) 之外触摸单元格时滚动 - 每当 Drag-Handler-Accessory-View 时移动单元格(|||) 被触摸
  • 你有没有找到改变最短新闻持续时间的方法?

标签: ios uitableview uigesturerecognizer long-press


【解决方案1】:

您可能想要访问UITableViewReorderControl,如this article 中所述,然后查找任何附加的手势识别器。如果您发现任何问题,您应该能够更改 minimumPressDuration 属性。

【讨论】:

  • 我试过这个。由于某种原因,重新排序控件似乎没有附加任何手势识别器。
【解决方案2】:

斯威夫特 5

您可以将minimumPressDuration更改为0。这样您就可以进入拖放模式而无需长按。

let gesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress))
gesture.minimumPressDuration = 0

【讨论】:

    猜你喜欢
    • 2013-04-17
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多