我有一个 UI 组件,我想在我的应用程序中显示,这样任何触摸事件都会将其关闭(尽管触摸组件本身会产生与触摸它外部不同的结果)。
我当前的解决方案是拥有一个自定义 UIWindow 子类,它可以正确处理触摸并位于整个屏幕的顶部。但是,我不希望触摸被消耗,而是转发到它后面的任何 UI 元素(即我希望触摸触发窗口内的某些内容,但仍将事件转发到窗口后面的视图)。
我尝试转发触摸事件的方式是-[MyWindow sendEvent:]:
NSUInteger superWindowIndex = [[UIApplication sharedApplication].windows indexOfObject:self];
if (superWindowIndex == 0 || superWindowIndex == NSNotFound) {
[super sendEvent:event];
} else {
[[UIApplication sharedApplication].windows[superWindowIndex - 1] sendEvent:event];
}
然而,这并没有像我希望的那样奏效。
实现我想要做的事情的最佳方式是什么?UIWindow 是正确的方法吗?谢谢!