[UIScreen mainScreen].bounds与[UIApplication sharedApplication].keyWindow.bounds的区别是什么?

4

我有一个视图,希望它覆盖整个屏幕。我想将其框架设置为覆盖整个屏幕。在浏览Stack Overflow时,我发现了两种不同的设置视图框架以覆盖屏幕的方法:

[UIScreen mainScreen].bounds
[UIApplcation sharedApplication].keyWindow.bounds

在我看来,它们似乎总是返回相同的值,或者至少在我尝试的几个测试用例中是这样的。

目前我正在使用UIScreen,但我好奇这些调用之间的区别是什么?是否会有一些情况它们会返回不同的值?

1个回答

15
方法略有不同。[UIScreen mainScreen]返回设备的UIScreen对象,其边界始终为设备屏幕的大小。而[UIApplication sharedApplication].keyWindow返回应用程序的当前关键UIWindow,它可能不是设备屏幕的完整大小。
另一个明显的情况是,如果设备连接到多个屏幕,则[UIScreen mainScreen].bounds始终返回设备屏幕大小,但关键窗口可能位于其他屏幕之一上,并且它的大小将完全取决于所连接的屏幕类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接