为UIWindow选择适当的级别以启用与其后面的控制器的交互

问题描述 投票:0回答:1

我创建了一个UIWindow来显示全局覆盖所有控制器的菜单。我想设置级别,使窗口始终可见,用户可以与其后面的控制器进行交互。窗口包含一个控制器,它将在用户点击时扩展/收缩。见下图:

目前,我尝试过以下方法:

UIWindow *statusWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
statusWindow.windowLevel = UIWindowLevelAlert; //Have tried all three
statusWindow.hidden = NO;

[statusWindow addSubview:_gmDemo.view];//my controller's view
[statusWindow bringSubviewToFront:_gmDemo.view];

此代码阻止了我与其背后的控制器的交互。而且,当我将它设置为UIWindowLevelNormal - 1时,窗口被隐藏但我可以与其他控制器交互。

请告诉我实现目标的正确方法。谢谢。

注意:我已经阅读过this帖子。

ios uiviewcontroller uiwindow
1个回答
1
投票

自己找到解决方案问题是UIWindow的框架以及级别。首先我将水平设置为UIWindowLevelNormal。其次,我在菜单的按钮上动态处理了窗口的框架。当菜单需要扩展/收缩时,我适当增加/减少代表呼叫中UIWindow的大小。而已。

© www.soinside.com 2019 - 2024. All rights reserved.