新秋二十八 iOS / 一文搞定启动图(两种方式)
2019-07-28 本文已影响0人
不不不不同学
何谓 搞定 呢,就是一定可以显示。
以前弄过很多次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三种屏幕都具备启动图。
有不能显示的情况,请留言评论。