UIScreen界限与applicationFrame

为什么我在苹果的一些示例代码(如PhotoScroller)中看到我应该在loadView执行以下操作:

 CGRect frame = [[UIScreen mainScreen] bounds]; 

代替

 CGRect frame = [[UIScreen mainScreen] applicationFrame]; 

获得主屏幕的框架有什么不同吗?

ApplicationFrame是屏幕大小减去状态栏的大小(如果可见),界限是屏幕大小,无论状态栏如何。

所以applicationFrame会返回CGRectMake(0,0,320,460)假设你的应用程序的状态栏被设置为可见的,而边界将在相同的条件下返回CGRectMake(0,0,320,480) 。 这些数字是假设iPhone / iPod触摸屏的大小。

UIScreen类参考

iOS 9更新

在iPad上使用“拆分视图”function时, applicationFrame将返回应用程序窗口的大小。 bounds总是返回设备的大小。