iOS导航栏变高、状态栏字体变大问题的分析以及解决办法

问题背景:

新项目上线了,本以为会清闲一段时间,可是程序员旁边坐一个设计师是什么感觉?而且还是以个严谨的设计师。

项目上线以后发现,APP的导航栏要比其他APPP的要高,statu栏的字体也要比其他APP的大,而且,在切换到本APP的时候,statu栏的字体还会突然变大。

纳尼?!what's the hell!还有这样的问题?!关键是我以前都没发现……(如下图,上面是不正常的导航栏)

iOS导航栏变高、状态栏字体变大问题的分析以及解决办法



iOS导航栏变高、状态栏字体变大问题的分析以及解决办法

原因分析:

首先,我立马想到的是我的代码出现了问题。

紧接着,就开始翻看代码。整个项目的控制器是继承于一个BasicViewController的基类,但是我在修改了基类里面的代码以后,问题依然存在,尽管试了好几种方法。

然后在其他相关的类里面也看了看,还是没找到原因。

那就说明不是代码的问题了。

但是,这个现象只是出现在设计师的手机(iPhone6)上面,但是我的手机(iPhoneSE)却没出现,我就在想,公司为什么不给我配台大屏幕的测试机呢?我也不用一直用自己的手机进行开发测试了,说不定也就避免了这次的事故。想归想,虽然没两天公司就给我配了台6SiOS导航栏变高、状态栏字体变大问题的分析以及解决办法

其实不只是在iPhone6上面,在iPhone7plus上面也会出现这种情况。很明显,整个就是屏幕适配的问题了。

但是我在项目开始之初,对于适配等一些基本的问题已经提前做了一些(安全)措施啊,为什么还会出现这种情况呢?

最后,在我的不懈努力之下,找到了原因,还是适配没做好的原因!

当时应该是因为项目比较赶,boss又临时要看效果,所以当时设计师就给了一张960*640和一张640*1136的启动图,后面加班加点赶项目,也没想起来要其他尺寸的图,然后就导致适配出现了问题……好尴尬呀……

这书要是启动图片的像素影响的,在Assets.xcassets中设置LaunchImage不全,每个item的像素都是固定的,必须放入符合要求的图片,否则就会出现这个问题。

iOS导航栏变高、状态栏字体变大问题的分析以及解决办法

解决办法:

如下图,每个启动图都有尺寸的(点击每个位置,右侧的信息栏第三栏可以看到每个位置所需要的像素),还是老老实实的交代设计师,切出相应的图片吧!

iOS导航栏变高、状态栏字体变大问题的分析以及解决办法

总结:

xcassets文件虽然有很多方便的地方,比如自动识别@2x、@3x,但是我们在使用的时候还是要注意一些问题,除了一般的图片命名问题,就是LaunchImage和AppIcon里面的图片尺寸最好还是按照要求,放上所有尺寸的图吧。

关于设计师,要图的时候还是一次性要全套吧……说多了都是泪……