菜鸟教程小白 发表于 2022-12-12 22:09:21

iOS:将手势传递给下面的 View


                                            <p><p>我有一个简单的设置:有 2 个兄弟 <code>UIViews</code> A 和 B,B 完全覆盖 A(但它是透明的,所以 A 是可见的):</p>

<pre><code>┌──────────────────┐
│   View A         │
│                  │
│   ┌──────────────┴───┐
│   │   View B         │
│   │                  │
│   │                  │
│   │                  │
│   │                  │
│   │                  │
└───┤                  │
    │                  │
    │                  │
    └──────────────────┘
</code></pre>

<p>我需要 2 个不同的 <code>UIGestureRecognizers</code>:A 应该有一个点击识别器,B 应该有一个平移识别器。每当我点击 B 时,它应该传递触摸事件以查看 A 后面,以便它可以识别点击(我将使用一些逻辑来了解是否接受了平移,例如距离、起始区域等)。这可以在 iOS 中实现吗?</p>

<p>到目前为止,我的经验是,一旦 B 接受触摸,它就永远不会将其转发给后面的 A。接受与否的决定应立即在重写的 <code>pointInside</code> 或 <code>hitTest</code> 函数中完成。然而,在我的例子中,这个决定是基于一些逻辑的,并且取决于用户交互的上下文和历史。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>根据 <code>Responder Chain</code>,它会将事件转发到下一个 View (或下一级),如果它不是由顶层对象处理,但如果它是由顶层对象处理,那么它将不会t将其传递到下一个级别。因此,在您的情况下,如果 ViewB 正在响应触摸事件,它不会将触摸传递给 ViewA,但是如果您在 ViewB 中强行阻止触摸事件,则 <code>Responder Chain</code> 会传递触摸事件查看 A。</p>

<p>更多内容在链接中:<a href="https://developer.apple.com/library/content/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/event_delivery_responder_chain/event_delivery_responder_chain.html" rel="noreferrer noopener nofollow">enter link description here</a> </p>

<p>希望对你有帮助</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS:将手势传递给下面的 View ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39541763/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39541763/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS:将手势传递给下面的 View