触摸转发视图,高于iOS应用中的所有其他视图

时间:2019-02-18 11:29:32

标签: ios uiwindow

对于特定的企业iOS应用程序,我需要创建一个UIView,该UIView位于其他任何对象之上,但不拦截任何触摸。我目前正在UIWindowLevelAlert + 1上使用单独的UIWindow进行操作,其中userInteractionEnabled设置为false,如下所示:

self.alphaWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.alphaWindow.backgroundColor = [UIColor blackColor];
self.alphaWindow.windowLevel = UIWindowLevelAlert+1;
self.alphaWindow.hidden = NO;
self.alphaWindow.userInteractionEnabled = NO;
self.alphaWindow.rootViewController = [UIViewController new];
self.alphaWindow.alpha = 1-NIGHT_MODE_BRIGHTNESS;

这有点奏效,但是有一些问题。

  1. 键盘显示在self.alphaWindow上方。
  2. 某些UI组件未收到触摸。例如QLPreviewController正在工作,但是当我点击其共享按钮时,将打开一个动作表。在该操作表中,我可以点击“取消”,但是触摸到操作表中的任何其他选项(例如“复制”)都没有响应。

尤其是第二个问题对我来说似乎很奇怪。怎么解释?

位于其他任何地方的UIView的目的是使整个应用程序变暗。您能想到实现此效果的更好方法吗?

0 个答案:

没有答案