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 触摸事件问题的主要内容,如果未能解决你的问题,请参考以下文章
Objective c 当多个点击触摸同时作用在一个object时如何只让第一个点击起作用?
如何使触摸事件通过 UIView(类似于 CSS 中的 pointer-events:none)?