[[UIScreen mainScreen] bounds]和 applicationFrame

来源:互联网 发布:设计logo的软件 编辑:程序博客网 时间:2024/04/28 07:39

一直对ios设备的尺寸不大敏感,搞不清[[UIScreen mainScreen] bounds] 和[UIScreen mainScreen] 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)

测试调用:

1NSLog(@"[[UIScreen mainScreen] bounds]");
2 PrintRect([[UIScreen mainScreen] bounds]);
3     
4 NSLog(@"[[UIScreen mainScreen] applicationFrame]");
5 PrintRect([[UIScreen mainScreen]applicationFrame]);
测试结果:
01//Ipad4 retain:
022013-07-17 10:08:39.094 IpadSize[191:907] [[UIScreen mainScreen] bounds]
032013-07-17 10:08:39.097 IpadSize[191:907] X:0.000000,Y:0.000000,W:768.000000,H:1024.000000
04 
052013-07-17 10:08:39.098 IpadSize[191:907] [[UIScreen mainScreen] applicationFrame]
062013-07-17 10:08:39.099 IpadSize[191:907] X:0.000000,Y:20.000000,W:768.000000,H:1004.000000
07 
08//ipad normal:
092013-07-17 10:19:09.886 IpadSize[1223:11303] [[UIScreen mainScreen] bounds]
102013-07-17 10:19:09.887 IpadSize[1223:11303] X:0.000000,Y:0.000000,W:768.000000,H:1024.000000
112013-07-17 10:19:09.887 IpadSize[1223:11303] [[UIScreen mainScreen] applicationFrame]
122013-07-17 10:19:09.888 IpadSize[1223:11303] X:0.000000,Y:20.000000,W:768.000000,H:1004.000000
13 
14//iphone:
152013-07-17 10:15:39.372 IpadSize[1005:11303] [[UIScreen mainScreen] bounds]
162013-07-17 10:15:39.373 IpadSize[1005:11303] X:0.000000,Y:0.000000,W:320.000000,H:480.000000
172013-07-17 10:15:39.374 IpadSize[1005:11303] [[UIScreen mainScreen] applicationFrame]
182013-07-17 10:15:39.374 IpadSize[1005:11303] X:0.000000,Y:20.000000,W:320.000000,H:460.000000
19 
20 
21 
22//iphone 3.5 retain:
232013-07-17 10:16:34.145 IpadSize[1043:11303] [[UIScreen mainScreen] bounds]
242013-07-17 10:16:34.146 IpadSize[1043:11303] X:0.000000,Y:0.000000,W:320.000000,H:480.000000
252013-07-17 10:16:34.147 IpadSize[1043:11303] [[UIScreen mainScreen] applicationFrame]
262013-07-17 10:16:34.147 IpadSize[1043:11303] X:0.000000,Y:20.000000,W:320.000000,H:460.000000
27 
28//iphone 4 retain:
292013-07-17 10:17:26.562 IpadSize[1083:11303] [[UIScreen mainScreen] bounds]
302013-07-17 10:17:26.563 IpadSize[1083:11303] X:0.000000,Y:0.000000,W:320.000000,H:568.000000
312013-07-17 10:17:26.564 IpadSize[1083:11303] [[UIScreen mainScreen] applicationFrame]
322013-07-17 10:17:26.564 IpadSize[1083:11303] X:0.000000,Y:20.000000,W:320.000000,H:548.000000

从日志输出可以看到,bounds就是屏幕的全部区域,applicationFrame就是app显示的区域,不包含状态栏(高度20,如果状态栏隐藏的话,那么,这个结果就和bounds一样了)

0 0