gpt4 book ai didi

ios - UIGestureRecognizer 接收触摸但也将其转发给 UIControl

转载 作者:IT王子 更新时间:2023-10-29 07:43:35 25 4
gpt4 key购买 nike

如何让 UIViewUIGestureRecognizer 接收触摸事件,同时确保另一个底层/覆盖 UIView 也接收触摸事件收到完全相同的触摸事件?

假设我有以下 View 层次结构: view hierachie scribble

View A(蓝色)和 B(红色)都是同一个父 View (灰色)的 subview 。换句话说,他们都是 sibling ,顺序决定了他们中的谁覆盖了另一个。

选项 1: View B(红色)有一个常规的 UIButton 作为其 subview 。选项 2: View A(蓝色)有一个常规的 UIButton 作为其 subview 。

为了便于解释,给出了选项 1: View A(蓝色)附有 UITapGestureRecognizer(或者甚至更多,其他 UIGestureRecognizer)。什么是最优雅的方法来确保 UIButton 确实接收到其区域上的所有触摸,同时 View A(蓝色)接收到其 UITapGestureRecognizer 上的这些触摸?

如果可能的话,解决方案不应涉及扩展 UIButton 类和手动转发来自按钮本身的任何事件。想象一下 View B 将包含更多控件而不仅仅是一个按钮。所有这些控件都应该以某种方式允许 View A 接收对其 UIGestureRecognizer 的触摸。

我确实提供了两个选项,因为我不关心哪个 View (A 或 B)先出现,只要它们都收到触摸即可。

到目前为止,我所有的方法都突然进入了死胡同。也许自定义响应链会是一个不错的解决方案?我一直认为在整个 UIKit/UIEvent/UIResponder 堆栈中一定有一个优雅的解决方案。

最佳答案

你试过 this 了吗? ?

cancelsTouchesInView A Boolean value affecting whether touches are delivered to a view when a gesture is recognized.

@property(nonatomic) BOOL cancelsTouchesInView

关于ios - UIGestureRecognizer 接收触摸但也将其转发给 UIControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175255/

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