文档章节

iOS - applicationFrame和bounds的区别

 水一样的人儿
发布于 2016/01/07 21:29
字数 275
阅读 514
收藏 0

一. 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的值相同。这个时候不会减去状态栏高度。

© 著作权归作者所有

粉丝 9
博文 158
码字总数 76243
作品 0
杭州
私信 提问
[[UIScreen mainScreen] bounds]和 applicationFrame

一直对ios设备的尺寸不大敏感,搞不清[[UIScreen mainScreen] bounds] 和[UIScreen mainScreen] applicationFrame]的区别,故总是心虚,现扫盲下: 定义一个宏: #define PrintRect(frame) N...

辉兔狼
2013/07/17
0
6
2018 iOS 面试题大全(补充完整版)

原文地址:2018 iOS 面试题大全 由于原作者并没有继续更新,这里我转过来继续更新下 这个栏目将持续更新--请iOS的小伙伴关注! 1、iOS 应用导航模式有哪些? 2、iOS 中持久化方式有哪些? 3、...

Theendisthebegi
2018/11/15
0
0
【扫盲】iOS系统为什么比Android安全?

作为一个移动全栈开发者,在Android和iOS系统的安全性上有一点理解。我认为iOS比Android安全这个说法是正确的,但社会对于iOS比Android安全原因的理解并不完全正确。 首先,为什么iOS系统比A...

feng_blog
2015/09/05
4.5K
5
千元悬赏修复 OSC iPhone 客户端在 iOS 7 下的闪退问题

各位 OSCers 们: 应苹果要求在 XCode 5 下重新编译 OSChina 的 iPhone 客户端以兼容 iOS 7,目前我们已经解决了大部分的兼容性问题,但还有一个遗留问题恳请社区的 iOS 开发者们支持。 在 ...

红薯
2014/01/06
26.8K
112
千元悬赏修复 OSC iPhone 客户端在 iOS 7 下的闪退问题

各位 OSCers 们: 应苹果要求在 XCode 5 下重新编译 OSChina 的 iPhone 客户端以兼容 iOS 7,目前我们已经解决了大部分的兼容性问题,但还有一个遗留问题恳请社区的 iOS 开发者们支持。 在 ...

小编辑
2015/07/24
4
1

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
5
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
5
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
15
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部