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