2013-07-04 42 views
4

我认为我想覆盖整个屏幕。我想设置其框架覆盖整个屏幕。浏览堆栈溢出,我发现设置视图框覆盖屏幕的这两种不同的方式:[UIScreen mainScreen] .bounds vs [UIApplcation sharedApplication] .keyWindow.bounds?

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

在我看来,他们总是返回相同的值,或至少在几个测试案例我都试过了。

目前我正在使用UIScreen,但我好奇地知道这些调用之间的区别?会不会有一些情况会返回不同的值?

回答

12

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

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

相关问题