gpt4 book ai didi

iOS:通过 ScrollView 适本地传递正确的事件

转载 作者:行者123 更新时间:2023-11-29 03:45:29 26 4
gpt4 key购买 nike

所以我已经在这个问题上挣扎了很长时间,我相信我已经尝试了所有可用的 StackOverflow 解决方案,但仍然无法解决这个问题。

我的社交网络应用程序中的所有其他 View 上都有一个“窗帘 View ”

这是窗帘处于默认模式时的样子 This is how it looks when the curtain is in default-mode

这是窗帘处于“向下”模式时的样子 This is how it looks when the curtain is in "down"-mode

窗帘是包含在 ScrollView 中的 View 。

为了能够拖下窗帘,我必须将内容大小设置为覆盖绿色按钮,这可以在图像中看到。

内容大小类似于下面这张图片中的黑色描边区域。

enter image description here

我的问题。当 ScrollView 处于默认模式时,我无法弄清楚如何使我的绿色按钮“正在关注,每个人,附近”可点击/可触摸。显然, ScrollView 的内容大小重叠在按钮上,但我怎样才能避免这种情况呢?

我尝试过 hitTest 覆盖,尝试通过事件链传递触摸事件
其他类似的解决方案但没有运气。我无法让它发挥作用。

我已经使用包含 ScrollView 的自定义 View Controller 实现了窗帘 View 。然后将该 View 添加到 Root View 。

最佳答案

UIScrollView 位于默认位置时,您应该隐藏它:

scrollView.hidden = YES;

这将防止 UIScrollView 阻止触摸其下方的按钮。

参见Apple's UIView doco :

A hidden view disappears from its window and does not receive input events. It remains in its superview’s list of subviews, however, and participates in autoresizing as usual.

然后在拉下窗帘之前将隐藏设置为“否”。

编辑:

回答评论中的问题:

  1. 我如何知道我的 ScrollView 是否处于默认位置,没有触发任何事件?您应该能够通过检查 ScrollView 上的 contentOffset 属性来确定 ScrollView 是处于默认(隐藏)位置还是向下位置(显示)。

  2. 如果我将其设置为隐藏,窗帘的图像不会消失吗?是的,会的。如果您希望 View 仍部分显示在顶部而不是完全消失,则需要采用不同的方法(请参阅下面的一些建议)。

  3. ScrollView 应该用手指“向下拖动”(当然)。因此它需要始终触发事件。您可以检测主视图上的触摸/平移手势,并导致 ScrollView 根据该手势向下/向上移动。该手势实际上不需要在 ScrollView 内开始。

以下是一些我认为有用的链接:

希望这有帮助!

关于iOS:通过 ScrollView 适本地传递正确的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810189/

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