新秋二十八 iOS / 一文搞定启动图(两种方式)

何谓 搞定 呢,就是一定可以显示。
以前弄过很多次iOS的启动图,但总有因为遗忘一些小细节,而导致一直无法显示,几近怀疑人生,本文为了以后不再踩此坑而写。

目录
一、(方式一)LaunchScreen.storyboard
1、正常使用
2、特殊情况
二、(方式二)Launch Image

一、(方式一)LaunchScreen.storyboard

1、正常使用

Xcode新建工程,默认的启动图方式就是 LaunchScreen.storyboard
若本身不是或之前有改动,则使用 LaunchScreen.storyboard 制作启动图步骤是:
(1)新建 storyboard
(2)添加一个视图控制器
(3)配置该视图控制器

  • 在Xcode右侧,Attributes inspector中,勾选Is Initial View Controller
  • 在Xcode右侧,File inspector中,勾选Use as Launch Screen
    (4)TARGETS - General - App Icons and Launch Images中
  • Launch Images Source取消使用Launch Image,本身显示Use Asset Catalog...则无需理会
  • Launch Screen File选择刚创建的 storyboard
    (5)部分情况下,可能启动图的确是 storyboard了,但图片就是未显示。此时尝试不把图片放在 xcassets 中,而是直接放在Xcode中,或新建一个文件夹来放。此问题查资料,貌似网友较多认为是Xcode的Bug

上述步骤有所缺漏,启动图都不会显示。

2、特殊情况

一般 LaunchScreen.storyboard 这种方式的启动图适配,即是视图控制器上的ImageView的适配。因此一般情况无需再做什么适配工作,只要ImageView的适配拉线添加好布局逻辑,就可以了。

但也有特殊情况,设计师给图时,一般照着iPhoneXS Max设计,因此图会很瘦长,如若图的底部有重要信息(版权之类)则会被遮挡,或是整张图拉伸变形。

暂时没有发现合适的方法来处理此问题。因为 LaunchScreen.storyboard 本身不允许自定义控制器,如若Custom Class有选中对应的控制器,则会报错 Launch screens may not set custom classnames

二、(方式二)Launch Image

第二种方式是 Launch Image,此方式属于专门的屏幕准备专门分辨率的预览图,步骤如下:
(1)TARGETS - General - App Icons and Launch Images中

  • Launch Screen File中删除为空
  • Launch Images Source中点击Use Asset Catalog...,弹窗点击Assets,此时 Assets.xcassets 中会自动创建一个预览图册LaunchImage
    (若之前已手动创建,此时这里会创建一个LaunchImage-2,并默认选用此图册。这时需点击蓝色按钮选择回LaunchImage,并去 Assets.xcassets 中将多余的LaunchImage-2删除)
  • 确认Launch Images Source中选择的是我们所需的LaunchImage图册
    (2)配置选项
    在 Assets.xcassets 中点击 LaunchImage ,右侧弹窗中,如果自家App不需顾及横屏启动所用的预览图,则可将 Attributes inspector中,取消勾选列表中的Landscape
    (3)填入对应分辨率的预览图
  • 留海屏,填一个iPhone X / iPhone XS(1125 × 2436 px)即可,则X、XR、Max都会具备启动图
  • 非留海屏,填一个5.5英寸(1242 × 2208 px)、一个4.7英寸(750 × 1334 px)、Retina 4(640 × 1136 px)即可,则5、6、6p三种屏幕都具备启动图。

有不能显示的情况,请留言评论。