12

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

CGRect frame = [[UIScreen mainScreen] bounds]; 

代替

CGRect frame = [[UIScreen mainScreen] applicationFrame]; 

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

4

2 回答 2

17

ApplicationFrame 是屏幕大小减去状态栏(如果可见)的大小,bounds 是屏幕大小,与状态栏无关。

所以 applicationFrame 会返回CGRectMake(0,0,320,460)假设你的应用程序的状态栏设置为可见,而 bounds 会CGRectMake(0,0,320,480)在相同的条件下返回。这些数字假设 iPhone/iPod Touch 屏幕尺寸。

UIScreen 类参考

于 2010-06-25T18:12:00.867 回答
2

iOS 9 更新

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

于 2016-05-18T08:44:19.647 回答