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

Meg*_*anX 4 uiapplication bounds ios uiscreen

我认为我想覆盖整个屏幕.我想将其框架设置为覆盖整个屏幕.浏览堆栈溢出我发现这两种不同的方式来设置视图框以覆盖屏幕:

[UIScreen mainScreen].bounds
[UIApplcation sharedApplication].keyWindow.bounds
Run Code Online (Sandbox Code Playgroud)

在我看来,他们总是返回相同的值,或者至少在我尝试的几个测试用例中.

目前我正在使用UIScreen,但我很想知道这些电话之间的区别?是否会出现一些他们会返回不同价值的情况?

Tar*_*ark 14

方法略有不同.[UIScreen mainScreen]返回设备UIScreen对象,其范围始终是设备屏幕的大小.[UIApplication sharedApplication].keyWindow返回UIWindow应用程序的当前密钥,可以想象不是设备屏幕的完整大小.

这些可能不同的另一个明显情况是设备是否连接到多个屏幕.在这种情况下,[UIScreen mainScreen].bounds将始终返回设备屏幕大小,但关键窗口可能位于其他屏幕之一,并且它将具有完全不同的大小,具体取决于它所连接的屏幕类型.