【问题标题】:Is there a "touch slop" constant for iOS?iOS 是否有“触摸倾斜”常量?
【发布时间】:2015-06-29 16:03:30
【问题描述】:

在 Android 上,有一个“触摸倾斜”概念,表示“在我们认为用户正在滚动之前,触摸可以移动”的最小距离。我们可以使用 iOS 上的类似概念/常量吗?

Android 参考:https://developer.android.com/reference/android/view/ViewConfiguration.html#getScaledTouchSlop()

-- 编辑更多信息--

这是我的用例:我实际上正在为通用 UIView 实现自定义手势识别器。它应该在适当的时候触发触地、触地和点击事件。期望的效果是模拟 UIControls 如何响应一般 UIViews 上的触摸手势。问题是,当 UIView 在滚动视图中时,当滚动视图开始滚动时,单击事件不应触发。所以我只是在寻求对常量的只读访问,或者想知道这样的常量是否被普遍接受。

【问题讨论】:

  • 即使UIViewUIScrollView 内,您是否想要一种方法来触发触地事件?
  • 是的。效果是,如果scrollview中有类似按钮的view,touch down时背景颜色应该变暗,touch up时恢复正常。如果在触摸发生时手指保持在类似按钮的视图中,则会触发单击事件。如果滚动视图由于手指移动而开始滚动,则取消手势识别器,并立即触发触摸事件而不触发点击。

标签: ios objective-c uiscrollview uigesturerecognizer gesture


【解决方案1】:

“touch slop”属性仅适用于您使用UILongPressGestureRecognizer.(查看allowableMovement property。)系统在幕后为您处理所有手势分类逻辑。如果您需要普通UIPanGestureRecognizer 的此功能,您应该实现自己的UIGestureRecognizer 子类。更多关于子类化的信息可以在the documentation找到。

【讨论】:

  • 感谢参考!这是我的用例:我实际上正在为通用 UIView 实现自定义手势识别器。它应该在适当的时候触发 touch down、touch up 和 click 事件。期望的效果是模拟 UIControls 如何响应一般 UIViews 上的触摸手势。问题是,当 UIView 在滚动视图中时,当滚动视图开始滚动时,单击事件不应触发。所以我只是在寻求对常量的只读访问,或者想知道这样的常量是否被普遍接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2019-12-15
  • 2013-07-30
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多