你会如何允许UIGestureRecognizer
of a UIView
接收触摸事件,但也确保另一个,底层/上层UIView
也收到同样的触摸事件?
Lets say I have got the following view-hierachie:
视图 A(蓝色)和 B(红色)都是同一超级视图(灰色)的子视图。换句话说,他们都是兄弟姐妹,顺序决定了他们中的一个覆盖另一个。
选项1:
视图B(红色)有一个常规的UIButton
作为其子视图。
选项2:
视图A(蓝色)有一个常规的UIButton
作为其子视图。
为了解释起见,给出选项 1:
视图 A(蓝色)有一个UITapGestureRecognizer
(或者甚至更多,其他 UIGestureRecognizer)附加。确保最优雅的方法是什么UIButton
确实接收到其区域上的所有触摸,但视图 A(蓝色)也接收到其区域上的所有触摸UITapGestureRecognizer
?
如果可能的话,解决方案不应涉及延长UIButton
-class 并手动转发按钮本身的任何事件。想象一下视图 B 将包含更多控件而不仅仅是一个按钮。所有这些控件都应该以某种方式允许视图 A 接收对其的触摸UIGestureRecognizer
.
我确实提供了两个选项,因为我不在乎这些视图(A 或 B)中哪一个先出现,只要两者都收到触摸即可。
到目前为止,我所有的方法都突然进入了死胡同。也许自定义响应者链是一个不错的解决方案?我一直在想,整个过程中一定有一个优雅的解决方案UIKit
/UIEvent
/UIResponder
stack.
你有没有尝试过this http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html?
取消TouchesInView
一个布尔值,影响识别手势时是否将触摸传递到视图。
@property(nonatomic) BOOL cancelsTouchesInView
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)