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

标签 ios bounds uiapplication uiscreen

我想覆盖整个屏幕。我想将其框架设置为覆盖整个屏幕。浏览堆栈溢出时,我发现了这两种不同的设置 View 框架以覆盖屏幕的方法:

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

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

目前我正在使用 UIScreen,但我很想知道这些调用之间的区别?在某些情况下它们会返回不同的值吗?

最佳答案

方法略有不同。 [UIScreen mainScreen] 返回设备 UIScreen 对象,它的边界将始终是设备屏幕的大小。 [UIApplication sharedApplication].keyWindow 返回应用程序的当前键 UIWindow,这可能不是设备屏幕的完整尺寸。

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

关于ios - [UIScreen mainScreen].bounds vs [UIApplcation sharedApplication].keyWindow.bounds?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465547/

相关文章:

ios - 我们可以快速为 2 个 Action 制作 1 个 UIButton 吗?

C++: vector 边界

ios - 在多个 iOS 应用程序之间共享信息

swift - 如何以 CGRect 形式获取所选文本的边界?

java - 以 hasNext 方法为条件的 while 循环不断抛出 ArrayOutOfBounds 异常? ( java )

ios - 防止 iOS App Extension 中的屏幕变暗

iphone - 在 [UIApplication sharedApplication] openURL 之后重新启动 iPhone 应用程序

ios - 具有多个参数的函数的选择器

ios - 如何使用大小类和自动布局在 Xib 中水平对齐两个 UI 按钮

ios - 如何在单击按钮时更改自定义单元格的高度?