iOS LaunchScreen设置启动页以及更换启动图片不成功的问题

1、新建一个Launch Screen文件

新建一个Launch Screen文件

2、Launch Screen File选择LaunchScreen

Launch Screen File选择LaunchScreen

准备启动图的切图(一张)

这张启动图上下尽量留出空白或背景来避免被裁剪。新建Resource文件夹再在下级目录新建Images目录,将启动图片拖入目录。比如启动图分为底图(带花纹)+ 中间logo+底部,分别切图3张,如下图:

切图

3、配置Launch Screen.storyboard

按照如下勾选

Launch Screen.storyboard01
Launch Screen.storyboard02

其次,需要注意以前用launchImage设置启动图的朋友一定要在Build Settings将底下的“Asset Catalog Launch Image Set Name”对应原来的启动图片名字删除。如下图:

Launch Screen.storyboard03

然后,LaunchScreen.storyboard拖入一个UIImageViwe的UI控件,设置上下左右的边距都为0.注意,顶部一定要拖到最顶部(包括刘海),底部留safeArea.如下图配置。

Launch Screen.storyboard04

底图的约束要注意,上下是针对superview的

Launch Screen.storyboard05

再把两个子视图添加到上面,设置约束。

三张图片的iamgeview要设置上底图的图片名称,如下图:

Launch Screen.storyboard05

底图的imageview要设置Aspect Fill,另外两张小图设置为Aspect Fit就OK。

Launch Screen.storyboard06

最后要注意的是:每次更换启动图片时,一定要将启动图片重新命名,再拖入ReSource下级的Images目录下面,再在LaunchScreen.storyboard里面重新配置ImageViwe的图片。这样,可以避免更换启动图片时出现空白页面或读取到旧的启动图片的问题。



遇到的坑:

以前设置启动图时候跟上面区别是没有一张图适配,用的多张图适配,launchscreen.sotryboard的uiimageview添加的是Assets.xcassets里面LaunchImage,这样就可以加载LaunchImage里面的图,不同机型使用不同的图片,如下图:


Launch Screen.storyboard07


Launch Screen.storyboard08

但是,但是,突然一个需求说启动图要换,就把这八张图都换了,结果运行、打包都不生效,一直加载以前的旧图。我做了以下操作都不生效:

1、把里面图片名称全都改了,LaunchImage名字也改了,Launch Screen.storyboard名字也改了

2、删除app 、清缓存都不管用

最后只有重启手机才管用了,总不能要求用户都去重启手机。

以下为解决方案:

1、如果是用的launchscreen.sotryboard的uiimageview添加的是Assets.xcassets里面LaunchImage的方案,还是放弃吧,这种方案怎么修改,启动图都不会更新,除非重启手机。

2、使用Assets.xcassets这种方式设置启动图后,再转换成Launch Screen方式设置新的,启动页会更改,看来Launch Screen优先级比较高。

3、在Launch Screen上直接更换图片,如果更换不成功(都说是苹果的bug,换了图没有更新是系统有缓存,没有把老图片替换。)把图片名字改了。并且图片不要放在Assets.xcassets。

4、在Launch Screen上直接更换图片,如果更换不成功,删除原先的在Launch Screen.storyboard创建一个新的,添加UIImageView和约束,添加图片,注意:图片名称还得换成新的。

5、图片不要放在Assets.xcassets里面,因为只用了一张图(和两张小切图),放到外面的文件夹里。

你可能感兴趣的:(iOS LaunchScreen设置启动页以及更换启动图片不成功的问题)