最近我一直在想一个事实,一个iOS应用程序只有一个UIWindow
。创建另一个UIWindow
并将其放在屏幕上似乎不是问题。
我的问题有点模糊,但我感兴趣的是:
UIWindow
可以实现哪些其他方式无法实现的目标?UIWindow
实例时会出现什么问题?UIWindow
在iPhone上显示类似于视图的弹出窗口。这是一个好的方法吗?为什么?为什么不呢?并不是说我错过了什么。我从来没有觉得需要创建另一个UIWindow
实例,但也许它可以做一些我没有意识到的惊人的事情!:-)
我希望它可以帮助我解决这个问题:我需要在当前显示的内容上添加一个“封面视图”。如果已经有一个或多个模态控制器,它也应该可以工作。如果我在根控制器的视图中添加一个UIView
,模态控制器位于顶部,popover控制器也是如此。如果我以模态方式呈现封面视图,并且已经有了模态控制器,则只覆盖了部分屏幕。
发布于 2011-11-23 03:49:06
UIWindow
可以浮动在其他UI元素之上,如系统键盘。
最后一段:创建一个与主窗口具有相同框架的UIWindow
。将其windowLevel
属性设置为UIWindowLevelStatusBar
。将其hidden
属性设置为NO
。
发布于 2011-11-23 17:20:38
从Rob的回答开始,我稍微玩玩了一下,并想写下一些笔记,以供其他试图获取此主题信息的人参考:
UIWindow
根本不是问题。只需创建一个和makeKeyAndVisible
即可。完成。UIWindow
覆盖一切,甚至模态,弹出,等等。Brilliant!UIWindow
总是隐式的肖像。它不会旋转。您必须添加一个控制器作为新窗口的根控制器,并让它处理旋转。(就像主窗口一样)UIWindowLevelStatusBar
,以使其覆盖所有内容。将其hidden
属性设置为NO。UIWindow
可用于在屏幕上显示浮动在所有内容之上的视图。无需创建一个虚拟控制器就可以将其嵌入到UIPopoverController
.发布于 2019-01-08 10:27:06
这里是苹果的文档,以更好地理解UIWindow:https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/WindowScreenRolesinApp/WindowScreenRolesinApp.html
使用多个UIWindow实例的一个很好的具体原因是当您需要对应用程序屏幕进行视频录制时。您可能不想包含某些元素(录制按钮、录制状态等)在最终录制的视频中,所以您可以将这些元素放在顶部的单独UIWindow中。
实际上,如果您使用的是ReplayKit,则必须为这些排除的UI元素使用单独的UIWindow。更多信息请点击此处:https://medium.com/ar-tips-and-tricks/how-to-record-a-screen-capture-with-replaykit-whilst-hiding-the-hud-element-bedcca8e31e
https://stackoverflow.com/questions/8232398
复制相似问题