gpt4 book ai didi

ios - 我可以取消 UILongPressGestureRecognizer,关闭 View 并长按以识别下面的 View 吗?

转载 作者:行者123 更新时间:2023-11-29 02:20:32 31 4
gpt4 key购买 nike

我有一个带有长按手势识别器的 View 。

在我的应用程序中,我必须临时在其上放置另一个 View ,但底层 View 所在的区域是透明的,因此用户仍然可以看到下面的 View 。

我在新的顶 View 中添加了一个 UILongPressGestureRecognizer。当用户长按他们可以看到的 View (位于顶 View 下方)时,我会在顶 View 中识别它。我取消它(使用 g.enabled = NO;),然后关闭我的顶 View 。

现在,我想让用户长按的 View 触发其手势识别器。有办法吗?

更新:

根据 @matt 在评论中的建议,我从顶部 View 中删除了手势识别器 - 这给了我更多的洞察力和控制力 - 但我还没有做到这一点。

我已经尝试过使用 hitTest:withEvent: 来忽略透明区域中的事件,但到目前为止我还没有让它发挥作用(让事件在底层 View 中启动手势) .

现在我正在尝试通过让我的顶 View 将它们直接发送到其 View Controller 来重新路由touchesBegan:withEvent:,以查看是否会从那里进一步传播,但我还没有让它发挥作用。

我仍在调试以确定触摸是否被发送到底部 View - 我不确定这是否最终会启动识别器,这是我的目标。

最佳答案

如果顶 View 只是一个 View ,那么根本不向其添加手势识别器可能会更容易。您可以将手势识别器附加到它后面的 View 。手势识别器自动向上操作 View 层次结构,因此附加到后面 View 的手势识别器将响应顶 View 上的长按。

如果顶层 View 属于一个自定义的包含 View Controller ,而它后面的 View 属于父 View Controller ,则包含 View Controller 有一个对父 View Controller 的引用作为它的parentViewController。因此,您在顶 View 中的手势识别器处理程序可以向 parentViewController 发送消息,然后它可以执行它在自己的手势识别器处理程序中可以执行的任何操作。

关于ios - 我可以取消 UILongPressGestureRecognizer,关闭 View 并长按以识别下面的 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204212/

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