iOS10~最新系统适配相关

iPhone14系列导航适配和一些错误纠正

2022-10-17  本文已影响0人  xiaoliang1

如果你没有使用导航高度来布局一些界面,可以选择不看。
今天在维护项目时发现了一些问题,于是就写下来记录一下。仅在iOS16系统下查看了以下问题

1.项目中的一些错误:

#define NAVIGATIONBAR_HEIGHT  ([UIDevice currentDevice].isFringeScreen ? 88 : 64)

类似这样的代码,默认刘海屏导航部分的高度为88.这里其实是错误的。目前在iOS16上iPhone11以前的刘海是88.以后的全部是91,iPhone14屏幕上达到了夸张的103。简单整理了一下:

iPhoneX - iPhone11:88
iPhone13 - iPhone14Plus:91
iPhone14Pro&iPhone14ProMax:103

2.布局相关变化

iPhone14Pro&iPhone14ProMax上一些UI布局也有细微的变化。所以有时候你怎么计算都不会计算对的。如果有AutoLayout可以无视这个问题。
一下是iPhone14上的布局,请注意self.view的布局以及相关的导航高度:

5061665979814_.pic.jpg 5051665979768_.pic.jpg

self.view的Y的是91,和导航高度正好对上。

iPhone14ProMax上的UI布局如下:

5071665979927_.pic.jpg 5081665980006_.pic.jpg

iPhone14ProMax导航高度是103,但是self.view的Y的是97.667,比真实值差了大概5.0+的像素。同样的问题也在iPhone14Pro上也存在。

最后:

能尽量用AutoLayout就用AutoLayout,别用frame去算。

上一篇下一篇

猜你喜欢

热点阅读