如何解决UIGestureRecognizer接收触摸但也将其转发到UIControl
| 您将如何允许ѭ1中的ѭ0receive接收触摸事件,又如何确保另一个底层/叠加UIView
也接收相同的触摸事件?
可以说我有以下视图层次结构:
视图A(蓝色)和视图B(红色)都是同一父视图(灰色)的子视图。换句话说,它们都是兄弟姐妹,而顺序决定了其中一个覆盖另一个。
选项1:
视图B(红色)的子视图带有规则的“ 3”。
选项2:
视图A(蓝色)的子视图带有规则的“ 3”。
为了说明起见,给定选项1:
视图A(蓝色)附加了UITapGestureRecognizer
(或什至更多,其他UIGestureRecognizers)。确保UIButton
确实接收到其区域上的所有触摸,并且视图A(蓝色)也获得UITapGestureRecognizer
上的触摸的最优雅方法是什么?
如果可能,该解决方案不应涉及扩展“ 3”类并手动转发按钮本身的任何事件。想象一下,视图B将包含更多控件,而不仅仅是一个按钮。所有这些控件都应以某种方式允许视图A在其“ 0”上接收触摸。
我提供了两个选项,因为我不在乎那些视图(A或B)中的哪个先出现,只要它们都得到了触摸即可。
到目前为止,我所有的方法都达到了死胡同。也许自定义响应者链将是一个不错的解决方案?我一直认为,在整个UIKit
/UIEvent
/UIResponder
堆栈中必须有一个优雅的解决方案。
解决方法
你尝试过这个吗?
cancelsTouchesInView
一个布尔值,影响在识别手势时是否将触摸传递给视图。
@property(nonatomic) BOOL cancelsTouchesInView
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。