您的位置:首页 > 移动开发

iOS - applicationFrame和bounds的区别

2016-01-07 00:00 232 查看
一. 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的值相同。这个时候不会减去状态栏高度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: