我如何保持新添加的UIWindow在顶部

时间:2018-06-21 11:19:42

标签: ios swift uiwindow

在我的应用程序中有一些需求,其中我需要添加一些新功能的新窗口,并且我能够成功做到这一点。启动应用程序后,我将根据需要添加和关闭窗口。但是我想知道如何将当前窗口始终保持在其他窗口之上(如果有的话)以避免冲突? iOS中有什么方法可以使展示窗口始终位于其他窗口之上?

2 个答案:

答案 0 :(得分:0)

看看makeKeyAndVisible API

func makeKeyAndVisible()
  

显示窗口并使其成为关键窗口。
  这是一种方便的方法,可以显示当前窗口并将其放置在所有其他相同或更低级别的窗口之前。如果只想显示窗口,请将其isHidden属性更改为false。

此外,UIApplication具有.windows property,它是可见窗口和隐藏窗口的数组

var windows: [UIWindow]

您可以迭代此数组并找到要设置为键窗口的窗口。

最后看一看.windowLevel UIWindow property,它管理窗口在z轴上的位置。

var windowLevel: UIWindow.Level { get set }
  

窗口级别提供沿z轴的相对窗口分组。分配给同一窗口级别的所有窗口都出现在分配给不同窗口级别的所有窗口的前面(或后面)。不能保证给定窗口级别内窗口的顺序。

     

此属性的默认值为正常。有关其他可能的窗口级别的列表,请参见UIWindow.Level。

答案 1 :(得分:0)

窗口的排序由UIWindow.windowLevel控制。

myWindow.windowLevel = .statusBar + 1