我正在尝试在我的键盘附件视图上启用交互式的弹出手势识别器。默认情况下,它不工作。
我传递了一个交互式的pop手势识别器引用到我的附件视图,以便将它的触摸事件转发给识别器。
它特别有效:导航栏的标题被更改,附件视图的背景显示了前面视图控制器的视图,就好像转换确实开始了一样。但是,即使手势识别器完成了跟踪,顶部视图本身仍然处于位置。
我还试图将触摸事件转发到导航控制器本身、它的视图、它的顶部视图控制器及其窗口。即使同时转发给他们所有人,也没有什么改变。
有什么想法吗?
发布于 2015-11-23 09:15:39
似乎不可能在响应链中重用触摸事件实例。一旦调用了sendEvent: on UIWindow,就会有特定的视图拥有该触摸,因此在将UIEvent实例转发给其他视图或它们的手势识别器时没有任何保证。
但是,拥有的视图可以将事件转发到其nextResponder()s (例如:附加到此视图或视图的子视图之一的手势识别器)。
转发到另一个视图(来自另一个视图层次结构)或另一个视图的手势识别器的唯一机会是在UITouch对象创建之前:即在调用pointInside:withEvent:方法的hitTest:withEvent:方法调用期间在hitTest:withEvent:级别上
无论如何,我不确定是否有可能将触点从一个UIWindow转发到另一个。稍后将更新答案。
225
http://smnh.me/hit-testing-in-ios/
https://stackoverflow.com/questions/33822784
复制相似问题