您将如何允许 aUIGestureRecognizer
接收UIView
触摸事件,同时确保另一个底层/覆盖UIView
也接收相同的触摸事件?
可以说我有以下视图层次结构:
视图 A(蓝色)和 B(红色)都是同一个父视图(灰色)的子视图。换句话说,他们都是兄弟姐妹,并且顺序决定他们中的哪一个覆盖另一个。
选项 1:视图 B(红色)有一个常规UIButton
作为其子视图。选项 2:视图 A(蓝色)有一个常规UIButton
作为其子视图。
为了便于解释,给定选项 1:视图 A(蓝色UITapGestureRecognizer
)附加了一个(或者甚至更多,其他 UIGestureRecognizers)。什么是最优雅的方法来确保UIButton
确实接收到其区域的所有触摸,但视图 A(蓝色)也接收到它的触摸UITapGestureRecognizer
?
如果可能的话,解决方案不应涉及扩展UIButton
-class 和手动转发按钮本身的任何事件。想象一下视图 B 将包含更多控件而不仅仅是一个按钮。所有这些控件都应该以某种方式允许视图 A 接收对其UIGestureRecognizer
.
我确实提供了两个选项,因为我不在乎这些视图(A 或 B)中的哪一个先出现,只要两者都收到触摸。
到目前为止,我所有的方法都突然走到了死胡同。也许自定义响应者链会是一个不错的解决方案?UIKit
我一直在想,整个//堆栈中必须有一个优雅的解决方案UIEvent
。UIResponder