iOS - applicationFrame和bounds的区别
2016-01-07 00:00
232 查看
一. applicationFrame和bounds的区别
示例代码:
控制台输出:
width :320.000000, height: 568.000000
applicationFrameWidth : 320.000000, applicationFrameHeight : 548.000000
这是在5s下运行出来的,bounds指的是Points,与像素点无关。像素点要宽高分别乘以scale得出。 可以看出bounds计算出来的是全部的大小,包括状态栏。而applicationFrame计算出来的则是除去状态栏的大小。
状态栏指的是手机屏幕上的最上方显示运营商和手机电量的一栏,在代码里是用StatusBar表示的。
上面的是在竖屏状态下的结果。
applicationFrame这个在横竖屏时计算出来的也有需要注意的:在竖屏下高会减去状态栏的高度20,如上所说,但在横屏时不会减去状态栏高度,也就是在横屏下计算出来的applicationFrame和bounds的值相同。这个时候不会减去状态栏高度。
示例代码:
CGFloat width = [UIScreen mainScreen].bounds.size.width; CGFloat height = [UIScreen mainScreen].bounds.size.height; NSLog(@"width :%f, height: %f", width, height); // CGFloat applicationFrameHeight = [[UIScreen mainScreen] applicationFrame].size.height; CGFloat applicationFrameWidth = [[UIScreen mainScreen] applicationFrame].size.width; NSLog(@"applicationFrameWidth : %f, applicationFrameHeight : %f ", applicationFrameWidth, applicationFrameHeight);
控制台输出:
width :320.000000, height: 568.000000
applicationFrameWidth : 320.000000, applicationFrameHeight : 548.000000
这是在5s下运行出来的,bounds指的是Points,与像素点无关。像素点要宽高分别乘以scale得出。 可以看出bounds计算出来的是全部的大小,包括状态栏。而applicationFrame计算出来的则是除去状态栏的大小。
状态栏指的是手机屏幕上的最上方显示运营商和手机电量的一栏,在代码里是用StatusBar表示的。
上面的是在竖屏状态下的结果。
applicationFrame这个在横竖屏时计算出来的也有需要注意的:在竖屏下高会减去状态栏的高度20,如上所说,但在横屏时不会减去状态栏高度,也就是在横屏下计算出来的applicationFrame和bounds的值相同。这个时候不会减去状态栏高度。
相关文章推荐
- Android屏幕自动变换,layout-land文件修改报错
- iOS App设置icon,启动图,App名称的方法
- iOS 9音频应用播放音频之iOS 9音频播放进度
- 小猪的Android入门之路 Day 5 - part 1
- 小猪的Android入门之路 Day 4 - part 4
- 小猪的Android入门之路 Day 4 - part 3
- 小猪的Android入门之路 Day 4 - part 2
- 小猪的Android入门之路 Day 4 - part 1
- Android Studio安装与使用
- 小猪的Android入门之路 Day 3 - part 3
- [原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)
- Android Auto Scroll ViewPager (Smooth)
- android实现下载图片在(Notification)通知栏上显示进度。
- 【Android】How Android Draws Views
- Ruby基础语法(1): Object
- Guava学习笔记(3):复写的Object常用方法
- Android自助餐之Jni(一)最简单的运行
- Android LMK
- Android LMK
- [置顶] Android任务栈