从2020年4月开始,所有使⽤ iOS13 SDK的 App将必须提供 LaunchScreen,LaunchImage即将退出历史舞台

2020年3月22号更新

评论里很多兄弟反映了几个问题

1,ios13系统有问题

2,刘海屏上下有黑边

3,文章的demo是白图,看不出来是否适配。

本人今天恰逢有新项目,顺道来看一下我这个配置,本人未发现有这三个问题,尤其是第三个,其实看一下准备的图就发现上面的白边是少了一部分的,说明并没有留白。

放上xs max的截图,其他的就懒得放了。

2020年4月16号更新

已经通过此方法上线两款app。


image.png

今天拿到新启动项目的启动图,突然想到这条iOS13的要求,恰好最近在适配公司其他的工程到iOS13。像在下这个菜鸡当然是先百度为敬。


然后吃了一惊,网上竟然几乎没有这方面的资料(可能菜到不会百度)即便是有,也是将图片直接放在LaunchScreen.storyboard进行粗暴的拉伸,就目前苹果这个机器越来越复杂的情况,很明显粗暴的拉伸是绝对满足不了需求的。


肿么办呢?通过查阅各方资料,再加上自己思考(自闭)终于找到一个方法,也不知道是不是正规操作,总之是完成了适配。

准备图片


41573701315_.pic_hd.jpg


我们准备了目前市场占比较高的手机尺寸的图片

4.0寸的iPhone5/5s

4.7寸的iPhone678

5.5寸的iPhone6P7P8P

5.8寸的iPhoneX/XS iPhone11Pro

6.1寸的iPhoneXr iPhone11

6.5寸的iPhone XS Max/iPhone 11 Pro Max

(后面的命名规则在欺负强迫症的人)


为了区分每个手机屏幕,在图片上做了标记。

xcode创建图片


创建图片


默认状态

将所有尺寸的图片拖入到当前图片的文件夹下


拖入文件夹

xcode会自动同步,但是会出现不识别的警告。

然后用编辑器打开Contents.json文件


默认状态

将三个数组字典删除掉,更换成

{
"idiom" : "iphone",
"scale" : "1x"
},
{
"idiom" : "iphone",
"filename" : "iPhone4.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"subtype" : "retina4",
"scale" : "1x"
},
{
"idiom" : "iphone",
"filename" : "iPhone5s.png",
"subtype" : "retina4",
"scale" : "2x"
},
{
"idiom" : "iphone",
"filename" : "iPhone8P.png",
"subtype" : "736h",
"scale" : "3x"
},
{
"idiom" : "iphone",
"filename" : "iPhone8.png",
"subtype" : "667h",
"scale" : "2x"
},
{
"idiom" : "iphone",
"filename" : "IPhoneX.png",
"subtype" : "2436h",
"scale" : "3x"
},
{
"idiom" : "iphone",
"filename" : "iPhone XS Max.png",
"subtype" : "2688h",
"scale" : "3x"
},
{
"idiom" : "iphone",
"filename" : "iPhone XR.png",
"subtype" : "1792h",
"scale" : "2x"
}

这时我们的xcode就变成了这样


是不是很眼熟!

操作LaunchScreen.storyboard


拖入UIImageView控件

注意: 布局的时候,上下需要选择边界view,默认是SafeArea

然后图片image填上我们刚才创建的图片名。


图片不识别

注意:在我们敲入名字的时候,可能会出现图片不识别的情况,xcode11现在敲入图片的时候已经会提示了,也不会出现提示,在json文件中加上前面这段空状态或者有一张图就行,意思一下,原理是什么不知道,大佬可以评论一下解答,多谢

{
"idiom" : "iphone",
"scale" : "1x"
},
{
"idiom" : "iphone",
"filename" : "iPhone4.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"subtype" : "retina4",
"scale" : "1x"
},

这样就会有提示,且图片不在为大问号。


默认用的是上方代码里的iphone4.png

运行测试