一、苹果审核新规
背景:从2020年四月起提交至App Store的app,必须使用Xcode的Storyboard搭建启动页。在这条新规下,我们就不能使用原来的Assets.xcassets
➡️LaunchImage
来设置启动图了,必须换成LaunchScreen.storyboard来实现。
二、如何使用LaunchScreen.storyboard
搭建启动图呢?
首先,要在项目中进行配置。
1、在General—> App Icons and Launch Images—>Launch Screen File中选择LaunchScreen

2、选中LaunchScreen.storyboard,勾选Use as Launch Screen
的选项

3、在LaunchScreen.storyboard中添加一个UIImageView的控件

4、为新添加的UIImageView添加约束

5、设置约束
选中上下左右的约束(点击短横线),并将数值都设为0,最后点击Add按钮,如下图所示

6、修改约束
经过步骤5之后,效果如下:

从上图可以看出,默认的Safe Area
会在iPhoneX系列的机型上,使启动图没有覆盖整个屏幕。
7、解决留白问题
在左窗口选中底部约束—>点击右侧的First item—>选择Superview
—>将Constant
设置为0
,如下所示:

修改完成的效果如下:

同样的方式,修改顶部约束:

修改完后的效果:

8、查看不同机型的效果(这里以背景色代替了图片)

9、图片适配问题
不同机型,启动图的大小和宽高比不一样,如何解决呢?
由于系统类UIImageView,不能根据尺寸配置多张图片。那是否能将启动图改为自定义的类呢?
答案是:在LaunchScreen.storyboard中不能使用自定义类

那么,如何解决启动图的适配问题呢?
场景1:启动图为全屏的图片
解决办法:选5.5寸的启动图(因为宽度最大),并将填充模式设为等比例填充,如下图所示

场景2:启动图的内容在底部
如凤凰新闻,启动图为底部的文字logo,其余的留白。此时该图片就不是全屏的。约束应该改为:宽度填充满,高度=宽度*固定比例,再设置一个底部的约束,如下图所示

10、如果遇到了真机不生效的问题
如果遇到跑到真机上效果不对的问题,记得先删除Xcode的缓存,再clean一下项目,最后卸载手机上的app,重新安装即可(本人就遇到了在iPhoneX上不生效的问题)
网友评论