一直对ios设备的尺寸不大敏感,搞不清[[UIScreenmainScreen]bounds]和[UIScreenmainScreen]applicationFrame]的区别,故总是心虚,现扫盲下:
定义一个宏:
1 | #define
PrintRect(frame)NSLog(@"X:%f,Y:%f,W:%f,H:%f",frame.origin.x,frame.origin.y,frame.size.width,frame.size.height) |
测试调用:
1 | NSLog(@ "[[UIScreen
mainScreen]bounds]" ); |
2 | PrintRect([[UIScreen mainScreen]bounds]); |
4 | NSLog(@ "[[UIScreen mainScreen]applicationFrame]" ); |
5 | PrintRect([[UIScreen
mainScreen]applicationFrame]); |
测试结果:
02 | 2013-07-17 10:08:39.094IpadSize[191:907][[UIScreenmainScreen]bounds] |
03 | 2013-07-17 10:08:39.097IpadSize[191:907]X:0.000000,Y:0.000000,W:768.000000,H:1024.000000 |
05 | 2013-07-17 10:08:39.098IpadSize[191:907][[UIScreenmainScreen]applicationFrame] |
06 | 2013-07-17 10:08:39.099IpadSize[191:907]X:0.000000,Y:20.000000,W:768.000000,H:1004.000000 |
09 | 2013-07-17 10:19:09.886IpadSize[1223:11303][[UIScreenmainScreen]bounds] |
10 | 2013-07-17 10:19:09.887IpadSize[1223:11303]X:0.000000,Y:0.000000,W:768.000000,H:1024.000000 |
11 | 2013-07-17 10:19:09.887IpadSize[1223:11303][[UIScreenmainScreen]applicationFrame] |
12 | 2013-07-17 10:19:09.888IpadSize[1223:11303]X:0.000000,Y:20.000000,W:768.000000,H:1004.000000 |
15 | 2013-07-17 10:15:39.372IpadSize[1005:11303][[UIScreenmainScreen]bounds] |
16 | 2013-07-17 10:15:39.373IpadSize[1005:11303]X:0.000000,Y:0.000000,W:320.000000,H:480.000000 |
17 | 2013-07-17 10:15:39.374IpadSize[1005:11303][[UIScreenmainScreen]applicationFrame] |
18 | 2013-07-17 10:15:39.374IpadSize[1005:11303]X:0.000000,Y:20.000000,W:320.000000,H:460.000000 |
23 | 2013-07-17 10:16:34.145IpadSize[1043:11303][[UIScreenmainScreen]bounds] |
24 | 2013-07-17 10:16:34.146IpadSize[1043:11303]X:0.000000,Y:0.000000,W:320.000000,H:480.000000 |
25 | 2013-07-17 10:16:34.147IpadSize[1043:11303][[UIScreenmainScreen]applicationFrame] |
26 | 2013-07-17 10:16:34.147IpadSize[1043:11303]X:0.000000,Y:20.000000,W:320.000000,H:460.000000 |
29 | 2013-07-17 10:17:26.562IpadSize[1083:11303][[UIScreenmainScreen]bounds] |
30 | 2013-07-17 10:17:26.563IpadSize[1083:11303]X:0.000000,Y:0.000000,W:320.000000,H:568.000000 |
31 | 2013-07-17 10:17:26.564IpadSize[1083:11303][[UIScreenmainScreen]applicationFrame] |
32 | 2013-07-17 10:17:26.564IpadSize[1083:11303]X:0.000000,Y:20.000000,W:320.000000,H:548.000000 |
从日志输出可以看到,bounds就是屏幕的全部区域,applicationFrame就是app显示的区域,不包含状态栏(高度20,如果状态栏隐藏的话,那么,这个结果就和bounds一样了)