- [UIWindow setWindowLevel:]仅在窗口成为iOS 9上的关键窗口之前工作一次

时间:2015-09-30 15:07:18

标签: ios uiwindow

我在文档中找不到与此相关的任何内容。这就是文档所说的

  

更改窗口级别

     

每个UIWindow对象都有一个可配置的windowLevel属性   确定该窗口相对于其他窗口的定位方式。   在大多数情况下,您不需要更改您的级别   应用程序的窗口。新窗口自动分配给   创建时的正常窗口级别。正常的窗口级别   表示该窗口显示与应用程序相关的内容。更高   窗口级别保留用于需要浮动的信息   应用程序内容,例如系统状态栏或警报   消息。虽然您可以将窗口分配给这些级别   你自己,系统通常会在你使用特定的时候为你做这件事   接口。例如,当您显示或隐藏状态栏或   显示警报视图,系统自动创建所需的   窗口显示这些项目。

似乎不支持动态行为。也许有人知道任何解决方法吗?

目标是在状态栏上方显示重叠窗口。喜欢这个

enter image description here

我使用了MTStatusBarOverlay(https://github.com/myell0w/MTStatusBarOverlay),但是自从iOS 8.3起,在旋转期间定位第二个窗口存在系统错误(https://github.com/myell0w/MTStatusBarOverlay/issues/94

我发现,添加一个MTStatusBarOverlay实例作为主窗口的子视图可以修复定位和旋转问题,但会使叠加层处于状态栏下。

enter image description here

然后我认为更改根窗口的级别可以将它放在状态栏上并且​​它可以工作。

enter image description here

但这仅适用于application:didFinishLaunchingWithOptions:方法。

有什么想法吗?

0 个答案:

没有答案