0

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

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

这是窗帘处于默认模式时的外观 这是窗帘处于默认模式时的外观

这是窗帘处于“向下”模式时的样子 这是窗帘拉上时的样子

窗帘是包含在滚动视图中的视图。

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

内容大小类似于下图中的黑色描边区域

在此处输入图像描述

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

我已经尝试过hitTest覆盖,尝试通过事件链
其他类似解决方案传递触摸事件,但没有运气。我不能让它工作。

我已经使用包含滚动视图的自定义视图控制器实现了窗帘视图。然后将此视图添加到根视图。

4

1 回答 1

1

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

scrollView.hidden = YES;

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

请参阅Apple 的 UIView 文档

隐藏的视图从它的窗口中消失并且不接收输入事件。但是,它仍保留在其父视图的子视图列表中,并像往常一样参与自动调整大小。

然后在拖下窗帘之前将隐藏设置为 NO。

编辑:

要回答您评论中的问题:

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

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

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

以下是我发现有用的一些链接:

希望这可以帮助!

于 2013-07-24T00:06:09.477 回答