版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.05.26 |
前言
Safe Area是iOS 9新出的,它的出现一定程度上解决了很多适配的问题,可以说解决了很多UI方面的问题,你再也不用担心状态栏是否被覆盖,特别是iphone X出现以后,状态栏和底部都留有和其他机型不同的高度,这给适配带来更多的麻烦,但是Safe Area预留出来安全区域,可以让你对UI的适配无后顾之忧。感兴趣的可以看我上面写的几篇文章。
1. Safe Area解析(一) —— Safe Area由来及简单使用(一)
Safe Area真的就安全吗?
相信我这么问,那么答案就是不一定,它不一定就是安全的。
尽管是9系统出来的,但是对于10系统的适配,它顶部距离Safe Area顶部这个约束并不生效,这可能是苹果的一个BUG,现在还未解决,直到前几天做项目,其他操作系统直播间内根视图都没问题,预留出来了状态栏,但是对于7plus 10系统的手机,状态栏的位置没有预留出来,也就是10系统的Safe Area顶部这个约束是没有生效的,具体如下图所示:
运行起来,看效果
可以看见,顶部状态栏的位置并未预留出来,顶部约束没有生效。我尝试其他系统的手机就都是正常的。
问题解决
有了10系统Safe Area这个问题,那么就要解决。
1. 解决思路
可以按照下面的步骤解决这个问题:
- 为跟视图的顶部再设置一个约束,距离他的父视图间距设置为20,并将该约束拖到VC中,判断如果是iphone X就设置为44,优先级设置为1000(这个是默认的不用你修改什么)。
- 将原先顶部距离Safe Area的约束优先级降低为750或者更低,设置好的约束,如下所示。
2. 实现效果
经过上面几步,问题就解决了,可以很好的实现了效果,具体如下所示:
可以看见,预留出来上面状态栏的位置,用7plus 10系统手机进行的验证。同时,也用其他机型进行验证,结果还是正常的,没有问题。
对于这个BUG,我感觉苹果是知道的,但是因为什么不修改我也不清楚,但是影响了Safe Area这个适配利器在UI适配上的作用,让其性能大打折扣,希望可以早点修改过来,可以让设计人员减少劳动,或者更佳的设计体验。
后记
本篇主要讲述了在工作中遇到的一个Safe Area顶部约束不起作用的一个苹果BUG,感兴趣的给个赞或者关注,谢谢~~~~