【问题标题】:objective C touch events problemObjective C 触摸事件问题
【发布时间】:2010-10-28 14:08:49
【问题描述】:
我在 UIScrollView 中有 4 个 UIView。假设其中 1 是一个类似于 iphone 股票应用程序的图表。当我在图表上移动手指时,我需要画一条垂直线。我可以使用 touchesMoved。
但我还需要水平移动我的视图。问题是当我在图表上移动手指时,UIScrollView 水平滚动。
我怎样才能避免这种情况并将这两个识别为不同的事件?
【问题讨论】:
标签:
iphone
objective-c
iphone-sdk-3.0
ios4
【解决方案1】:
UIScrollView 仅在稍有延迟后才将触摸转发到子视图。如果在此延迟触发之前移动了触摸,UIScrollView 会将触摸解释为 contentOffset 的移动。要触摸您的子视图,请尝试按住它一秒钟,然后开始移动。
您可以将 scrollView 上的 delaysContentTouches 设置为 NO,然后立即转发触摸。
【解决方案2】:
我在这里找到了解决方案。
在 touchesBegan 方法上,我需要禁用 UIScrollView 的滚动。然后在 touchesEnded 里面我需要再次启用滚动。