背景
苹果在WWDC2019-session中提到,从2020年4月开始,所有支持iOS13的App必须提供LaunchScreen.storyboard,否则将无法提交到AppStore进行审核。苹果爸爸虽然说了要用LaunchScreen替代LaunchImage,但却没有给出如何适配,网上也很难找到相关文章。这里是在自己做替换过程中做的一些总结,希望能够帮助到有需要的人。
LaunchImage方案
LaunchImage是我们在iOS8之前使用的设置启动图方案,苹果每次推出新的屏幕尺寸的设备,我们需要在LaunchImage中放入对应的尺寸的启动图,随着屏幕尺寸的不断变多,这显然变成了一个繁琐的步骤。因此在iOS8之后,苹果引入了LaunchScreen,可以直接在Storyboard上通过AutoLayout与Size Class设置启动页样式,适配各种屏幕非常方便。LaunchImage将会退出历史的舞台。
LaunchScreen方案
-
创建
LaunchScreen.storyboard
-
做布局
点击创建的storyboard,在1和2相关的位置做启动页布局,在3的位置可以灵活查看不同设备尺寸的布局效果。

如果你想不同尺寸的设备上单独做布局目前来看是不可以的,因为不可以在LaunchScreen.storyboard上面添加自定义类。

简单的方式是放一个覆盖整个屏幕的ImageView,然后给ImageView设置一个本地的图片。如果启动图很简单,这样做倒是可以,但是如果元素比较多的启动图只用一个ImageView的话在一些尺寸的设备上图片可能会出现截取,超出,拉伸等问题。所以元素较多的启动页可以多添加一些控件做灵活布局,AutoLayout如何布局这里就不谈了,不是本文重点。
- 移除
LaunchImage
- 删除
LaunchImage文件和对应的图片

- 清除
Build Settings里面LaunchImage相关的配置

- 在
General里面设置Launch Screen File

总结
相对简单的启动图,改动起来工作量不大,复杂的就另说了。当然前提是熟悉更改流程,不然还是有一些坑要踩。
一些需要注意的点上面也都提到了,新冠疫情比较严重,希望大家都可以渡过难关,话不多说继续在家搬砖了~~~