码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发--利用Safe Area 适配iPhone X

时间:2017-11-24 19:05:03      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:先来   pre   add   origin   load   系统   real   eai   play   

最近做iPhone X的适配,发现了一些规律,总体来说适配还是很简单的

iPhone X 顶部的状态栏,也就是安全区距离顶部的高度为 44px;其他的iPhone都为 20px,

iPhone X安全区距离底部的高度为34px

在xcode9中增加了Safe Area

先来了解下

safeAreaLayoutGuide

首先我们看看什么是safeAreaLayoutGuide

技术分享图片
 

看起来复杂,其实很简单,我归纳一下有几点:

  1. 它是UIView的一个只读属性,意味着所有UIView对象都有并且是系统帮我们创建好的
  2. 它继承UILayoutGuide,有layoutFrame意味着它能代表一块区域
  3. 它代表的区域避开了诸如导航栏、tabbar或者其他有可能挡住你这个UIView对象显示的所有父view,意味着你的view对象只要相对另一个view的safeLayoutGuide做布局就不用担心她被奇奇怪怪的东西挡住
  4. 对于控制器的view的safeAreaLayoutGuide,他的区域同样避开了statusbar或其他有可能挡住view显示的东西,我们甚至可以用控制器的additionalSafeAreaInsets属性,来额外指定inset
  5. 如果view完全在父view的安全区域内,或者view不在视图层级或屏幕上,那么view的safeAreaLayoutGuide区域其实和view自身是一样大的

safeAreaLayoutGuide是一个相对抽象的概念,为了便于理解,我们可以把safeAreaLayoutGuide看成是一个“view”,这个“view”系统自动帮我们调整它的bounds,让它不会被各种奇奇怪怪的东西挡住,包括iPhone X的刘海区域和底部的一道杠区域,可以认为在这个“view”上一定能完整显示所有内容。

以下绿色部分就是当前控制器view的safeAreaLayoutGuide区域
技术分享图片
iphone X竖屏safeAreaLayoutGuide的bounds

 

技术分享图片
iPhone X横屏safeAreaLayoutGuide的bounds


 

iOS开发--利用Safe Area 适配iPhone X

标签:先来   pre   add   origin   load   系统   real   eai   play   

原文地址:http://www.cnblogs.com/lm3515/p/7891631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!