UIScreen绑定与applicationFrame

Joo*_*ark 12 cocoa-touch ios uiscreen

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

CGRect frame = [[UIScreen mainScreen] bounds]; 
Run Code Online (Sandbox Code Playgroud)

代替

CGRect frame = [[UIScreen mainScreen] applicationFrame]; 
Run Code Online (Sandbox Code Playgroud)

获得主屏幕的框架是否有所不同?

jam*_*one 17

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

因此,CGRectMake(0,0,320,460)假设您的应用程序将状态栏设置为可见,则applicationFrame将返回,而边界将CGRectMake(0,0,320,480)在相同条件下返回.这些数字是假设iPhone/iPod Touch屏幕尺寸.

UIScreen类参考

  • 我可能弄错了,但是applicationFrame没有返回CGRectMake(0,20,320,460)?其中20是状态栏的偏移量... (8认同)
  • 你没弄错,尼尔斯:).y偏移将报告为20,状态栏,而不是0. (2认同)