【问题标题】:Extend Gesture Length延长手势长度
【发布时间】:2012-08-08 08:09:54
【问题描述】:

我遇到了一个问题,最简单的解决方案是扩展 UIGestureRecognizer 的长度。我的意思是,我需要 iOS 设备仍然相信用户在释放屏幕后将手指放在屏幕上大约 0.1 秒。我需要设备认为手指在 0.1 秒内处于与用户释放它时完全相同的位置。 任何有关天气的帮助将不胜感激! 谢谢!!!

编辑: 抱歉回复晚了,最近工作很忙。

为了详细说明,我使用了一组由 Alan Quartermain 制作的名为 AQGridView 的类。这是一个与 UITableView 非常相似的类;但是,它以网格而不是列表的形式显示数据。似乎存在一个错误,其中(如果我理解正确,我可能不会)在委托方法之前重新加载网格的数据,当用户结束 UIGestureRecognizer 时调用该方法,如果用户释放他们的手指而完成非常快速地拖动一个单元格(从一个网格索引到另一个)。这会导致图形故障(可以在类集附带的跳板示例中重新创建),其中拖动单元格似乎在其适当位置之前或之后固定一个单元格,然后快速跳转到它的正确位置。我相信这是因为有一个短暂的时期,当用户释放他们的手指时,网格数是细胞稳定时的 -1。 这是对问题的一个糟糕的解释,但我能想到的最好的解释。同样,我是一个相对较新的开发人员,可能无法解决问题的原因。这就是为什么我认为最合适的解决方法是将手势长度延长一个非常小的量。如果有人想看看 AQGridView 类(https://github.com/AlanQuatermain/AQGridView/),我将不胜感激!但如果可能的话,一个更简单的解决方法是模拟用户在松开手指之前输入的触摸,以便出现所需的动画。

【问题讨论】:

  • 如果您描述了手势的作用,以及在 0.1 秒期间或之后您想做什么,我们或许可以为您提供更好的帮助。
  • 为什么要相信他们的手指还在那里?您可以通过添加延迟来解决问题吗?例如使用dispatch_afterperformSelector:afterDelay:

标签: objective-c ios uigesturerecognizer extend


【解决方案1】:

touchesEnded 委托方法中,启动计时器 0.1 秒并执行您的 selector

你甚至可以继承 UIGestureRecogniser 并实现你自己的手势,检查这个问题的第一个答案。

见:custom iOS gesture

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多