我正在尝试在键盘的附件视图上启用交互式弹出手势识别器。默认情况下它不起作用。
我将交互式弹出手势识别器引用传递给我的附件视图,以便将其触摸事件转发给识别器
它特别有效:导航栏的标题发生了变化,并且附件视图的背景显示了前一个视图控制器的视图,就好像过渡确实开始了一样。但是,即使手势识别器完成跟踪,顶视图本身仍然存在。
我还尝试将触摸事件转发到导航控制器本身、它的视图、它的顶视图控制器和它们的窗口。即使同时转发给所有这些,也没有任何变化
任何想法缺少什么?
我正在尝试在键盘的附件视图上启用交互式弹出手势识别器。默认情况下它不起作用。
我将交互式弹出手势识别器引用传递给我的附件视图,以便将其触摸事件转发给识别器
它特别有效:导航栏的标题发生了变化,并且附件视图的背景显示了前一个视图控制器的视图,就好像过渡确实开始了一样。但是,即使手势识别器完成跟踪,顶视图本身仍然存在。
我还尝试将触摸事件转发到导航控制器本身、它的视图、它的顶视图控制器和它们的窗口。即使同时转发给所有这些,也没有任何变化
任何想法缺少什么?
看起来不可能在响应者链中重用触摸事件实例。一旦sendEvent:
onUIWindow
被调用,已经有一个特定的视图拥有触摸,因此将UIEvent
实例转发给其他视图或它们的手势识别器是没有任何意义的。
但是,拥有视图可以将事件转发给它nextResponder()
的 s(例如:附加到此视图或视图的子视图之一的手势识别器之一)
将触摸转发到另一个视图(来自另一个视图层次结构)或另一个视图的手势识别器的唯一机会是在UITouch
对象创建之前:即在方法调用UIWindow
期间的级别上hitTest:withEvent:
,它调用pointInside:withEvent:
方法
无论如何,我不确定是否可以将触摸从一个转发UIWindow
到另一个。稍后会更新答案