gpt4 book ai didi

iphone - super View 如何在其任何 subview 之前拦截触摸序列?

转载 作者:行者123 更新时间:2023-12-03 20:59:56 25 4
gpt4 key购买 nike

我有一个布局如下的 View 层次结构:

父 View

 scrollView

contentViewA

containerView

contentViewB

contentViewC

我希望 contentViewB 能够响应触摸。不幸的是,scrollView 使这几乎不可能,因为它尝试吸收触摸本身,从而使 contentViewB 的触摸响应不稳定。

因此,我想拦截parentView中的所有触摸,直接操作contentViewB,然后将触摸传递给scrollView,以便它可以完成它的事情。

有人可以告诉我实现这一目标的正确方法吗?

提前致谢。

干杯,道格

更新:

我做了更多的挖掘,发现属性 canCancelContentTouches 似乎能产生奇迹。我正在使用 IB,因此我取消选中了 IB 中的“可取消内容触摸” - ScrollView 属性检查器的第一个选项卡。现在,当我运行应用程序时,触摸似乎可靠地到达 contentViewB。

以下是 UIScrollView 文档描述此属性的方式:

讨论如果此属性的值为 YES,并且内容中的 View 已开始跟踪触摸它的手指,并且用户拖动手指足以启动滚动,则 View 会收到 TouchesCancelled:withEvent: 消息,并且 ScrollView 会处理触摸如卷轴。如果该属性的值为NO,则一旦内容 View 开始跟踪,无论手指如何移动, ScrollView 都不会滚动。

相当不透明吧?无论如何,它似乎有效。

最佳答案

要阻止 ScrollView 拦截触摸事件,请设置 userInteractionEnabled 属性,如下所示:

scrollView.userInteractionEnabled = NO;

关于iphone - super View 如何在其任何 subview 之前拦截触摸序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1673903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com