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

最佳答案

看看makeKeyAndVisible API

func makeKeyAndVisible()

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

另外,UIApplication具有.windows property,它是可见窗口和隐藏窗口的数组
var windows: [UIWindow]

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

最后看看.windowLevel UIWindow property,它管理窗口在z轴上的位置。
var windowLevel: UIWindow.Level { get set }

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

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

关于ios - 如何保持新添加的UIWindow在顶部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50967280/

10-15 08:17