版本记录
版本号 | 时间 |
---|---|
V1.0 | 2020.04.19 星期日 |
前言
苹果的政策一直在变,所以很多时候我们都需要根据政策及时变动,比如加苹果登录、
UIWebView
修改为WKWebView
以及后面这个启动图片通过storyboard进行加载等,这一个专题就专门来处理苹果政策的变化。感兴趣的看下面几篇文章。
1. 苹果官方紧急处理 (一) —— 强制更换启动图加载方式(一)
问题描述
首先选用的方案还是按照像做普通页面那么做适配启动图,切图 + autolayout
方案。
但是这时出现个问题,那就是个别流海屏手机,个别机型xsmax 12
系统机型,使用launchScreen.storyboard
加载启动图,启动图都是正常的,但是到了主页,看见了主页被拉伸,底部的tabBar
延伸到了下面的底部,到了安全区。 而且亲测在某些xsmax13
系统的机型就是正常的。
具体如下图所示:
![](https://img.haomeiwen.com/i3691932/1074f182ae1ec8fc.png)
问题解决
想了很多为什么启动图正常,但是主页为什么冲出去安全区了呢?而且xsmax 13
系统正常,但是只是个别的xsmax 12
系统就不正常。
查了很多资料也不知道为什么,一开始一直怀疑是启动图做的launchScreen.storyboard
哪里做的不符合苹果的需求。但是找了很久也没发现哪里不对,况且在别的机型也是正常的。
所以有一种猜想,可能是我们自己的代码出问题了。
然后我就找了我们自定义的UITabBarController
那里的代码。
发现了一处代码:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
if (!Is375x812hScreen()) {
self.tabBar.frame = CGRectMake(0, KScreenHeight - kDSTabBarHeight, CGRectGetWidth(self.tabBar.frame), kDSTabBarHeight);
}
}
#define Is375x812hScreen() (ABS((double)[[UIScreen mainScreen] bounds].size.height - 812.f) < DBL_EPSILON || ABS((double)[[UIScreen mainScreen] bounds].size.width - 812.f) < DBL_EPSILON) //iphoneX
这里,Is375x812hScreen()
是17
年iphoneX
出来的时候加的宏,后来xsmax
等896
高的屏幕出来了,进行了更改,改宏就用来定义流海屏了,但是我用真机跑代码的时候,我发现xsmax 12
系统的手机进入了if判断语句里面,也就是说被认为了不是流海屏,而用同事的手机xsmax 13
系统手机就不会进入if语句,就可以正确被判定是流海屏。我猜想应该就是启动图加载方式变了,所以导致了流程哪里发生了改变,从而使用个别宏判断进行判定出现了错误。
这是一个很诡异的bug,不是吗?苹果可以给个解释吗?难道是xsmax 12
系统的精度出现了问题?据说iOS8
系统出现过精度问题。于是,我就修改了下宏,如下所示:
#define Is375x812hScreen() (ABS((double)[[UIScreen mainScreen] bounds].size.height - 812.f) < DBL_EPSILON || ABS((double)[[UIScreen mainScreen] bounds].size.width - 812.f) < DBL_EPSILON || ABS((double)[[UIScreen mainScreen] bounds].size.height - 896.f) < DBL_EPSILON || ABS((double)[[UIScreen mainScreen] bounds].size.width - 896.f) < DBL_EPSILON)
宏修改成这样,xsmax 12
系统的手机就被正确认定为流海屏,主页就显示正常了,主页就不冲出安全区了。
具体如下所示:
![](https://img.haomeiwen.com/i3691932/1b5c461c0cd5cc2d.png)
可以看见下面的安全区留出来了。
后记
本篇主要讲述了强制更换启动图加载方式为storyboard实践和遇到的坑,感兴趣的给个赞或者关注~~~
![](https://img.haomeiwen.com/i3691932/332a81a70b662f4e.jpg)
网友评论