iOS开发--利用Safe Area 适配iPhone X
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发--利用Safe Area 适配iPhone X相关的知识,希望对你有一定的参考价值。
最近做iPhone X的适配,发现了一些规律,总体来说适配还是很简单的
iPhone X 顶部的状态栏,也就是安全区距离顶部的高度为 44px;其他的iPhone都为 20px,
iPhone X安全区距离底部的高度为34px
在xcode9中增加了Safe Area
先来了解下
safeAreaLayoutGuide
首先我们看看什么是safeAreaLayoutGuide
看起来复杂,其实很简单,我归纳一下有几点:
- 它是UIView的一个只读属性,意味着所有UIView对象都有并且是系统帮我们创建好的
- 它继承UILayoutGuide,有layoutFrame意味着它能代表一块区域
- 它代表的区域避开了诸如导航栏、tabbar或者其他有可能挡住你这个UIView对象显示的所有父view,意味着你的view对象只要相对另一个view的safeLayoutGuide做布局就不用担心她被奇奇怪怪的东西挡住
- 对于控制器的view的safeAreaLayoutGuide,他的区域同样避开了statusbar或其他有可能挡住view显示的东西,我们甚至可以用控制器的additionalSafeAreaInsets属性,来额外指定inset
- 如果view完全在父view的安全区域内,或者view不在视图层级或屏幕上,那么view的safeAreaLayoutGuide区域其实和view自身是一样大的
safeAreaLayoutGuide是一个相对抽象的概念,为了便于理解,我们可以把safeAreaLayoutGuide看成是一个“view”,这个“view”系统自动帮我们调整它的bounds,让它不会被各种奇奇怪怪的东西挡住,包括iPhone X的刘海区域和底部的一道杠区域,可以认为在这个“view”上一定能完整显示所有内容。
以下绿色部分就是当前控制器view的safeAreaLayoutGuide区域
以上是关于iOS开发--利用Safe Area 适配iPhone X的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发-LayoutGuide(从top/bottom LayoutGuide到Safe Area)