Objective C 触摸事件问题

Posted

技术标签:

【中文标题】Objective C 触摸事件问题【英文标题】:objective C touch events problem 【发布时间】:2010-10-28 14:08:49 【问题描述】:

我在 UIScrollView 中有 4 个 UIView。假设其中 1 是一个类似于 iphone 股票应用程序的图表。当我在图表上移动手指时,我需要画一条垂直线。我可以使用 touchesMoved。

但我还需要水平移动我的视图。问题是当我在图表上移动手指时,UIScrollView 水平滚动。

我怎样才能避免这种情况并将这两个识别为不同的事件?

【问题讨论】:

【参考方案1】:

UIScrollView 仅在稍有延迟后才将触摸转发到子视图。如果在此延迟触发之前移动了触摸,UIScrollView 会将触摸解释为 contentOffset 的移动。要触摸您的子视图,请尝试按住它一秒钟,然后开始移动。

您可以将 scrollView 上的 delaysContentTouches 设置为 NO,然后立即转发触摸。

【讨论】:

【参考方案2】:

我在这里找到了解决方案。

在 touchesBegan 方法上,我需要禁用 UIScrollView 的滚动。然后在 touchesEnded 里面我需要再次启用滚动。

【讨论】:

以上是关于Objective C 触摸事件问题的主要内容,如果未能解决你的问题,请参考以下文章

目标 C:检测 UIScrollView 上的触摸事件

Objective c 当多个点击触摸同时作用在一个object时如何只让第一个点击起作用?

如何使触摸事件通过 UIView(类似于 CSS 中的 pointer-events:none)?

学习记录 -- 移动端的触摸事件

C# WPF如何模拟触摸屏Touch事件??急急急 重谢!!在线等!!

在 Android 中的多个视图上同时处理触摸事件