美文网首页
苹果官方紧急处理 (二) —— 强制更换启动图加载方式为stor

苹果官方紧急处理 (二) —— 强制更换启动图加载方式为stor

作者: 刀客传奇 | 来源:发表于2020-04-19 21:08 被阅读0次

版本记录

版本号 时间
V1.0 2020.04.19 星期日

前言

苹果的政策一直在变,所以很多时候我们都需要根据政策及时变动,比如加苹果登录、UIWebView修改为WKWebView以及后面这个启动图片通过storyboard进行加载等,这一个专题就专门来处理苹果政策的变化。感兴趣的看下面几篇文章。
1. 苹果官方紧急处理 (一) —— 强制更换启动图加载方式(一)

问题描述

首先选用的方案还是按照像做普通页面那么做适配启动图,切图 + autolayout方案。

但是这时出现个问题,那就是个别流海屏手机,个别机型xsmax 12系统机型,使用launchScreen.storyboard 加载启动图,启动图都是正常的,但是到了主页,看见了主页被拉伸,底部的tabBar延伸到了下面的底部,到了安全区。 而且亲测在某些xsmax13系统的机型就是正常的。

具体如下图所示:

xsmax 12系统超过安全区

问题解决

想了很多为什么启动图正常,但是主页为什么冲出去安全区了呢?而且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()17iphoneX出来的时候加的宏,后来xsmax896高的屏幕出来了,进行了更改,改宏就用来定义流海屏了,但是我用真机跑代码的时候,我发现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系统的手机就被正确认定为流海屏,主页就显示正常了,主页就不冲出安全区了。

具体如下所示:

xsmax 12系统

可以看见下面的安全区留出来了。

后记

本篇主要讲述了强制更换启动图加载方式为storyboard实践和遇到的坑,感兴趣的给个赞或者关注~~~

相关文章

网友评论

      本文标题:苹果官方紧急处理 (二) —— 强制更换启动图加载方式为stor

      本文链接:https://www.haomeiwen.com/subject/fitpvhtx.html