适配iPhoneX详解之iOS项目添加启动图片LaunchImage的3种方式

2023-10-27

启动图片

测试环境:

  • Xcdoe 9
  • iOS11

这篇文章,主要是解决公司发布多个马甲app,启动图片和图片放到了项目普通文件夹下的情况,文章可以参考我之前写的。 如果公司只是固定的产品,那直接放到Images.xcassets 下或者使用LanunchScreen.xib是最好的选择!

首先,iOS项目添加启动图片有三种方式:

(1) 放到工程 Images.xcassets 文件夹下的中的【LaunchImage】图片集合中。

(2) 放到工程下的普通文件夹中。

(3) 在LanunchScreen.xib中设置启动图片

下边,我就iOS项目这三种方式,以适配iPhone X为例子进行说明。

iPhone X的启动图片格式

iPhone X的启动图片就一张,格式是1125px × 2436px (375pt × 812pt @3x)。

这里@3x说明iPhone X的其他图标都是 @3x图,和启动图片没什么关系。你让美工或者自己弄一张,大小是1125 × 2436的图片就可以了!

至于图片的命名,查阅了官方文档,没有发现命名方法,如果有知道的朋友,请千万告诉我一下!万分感谢! 暂且,我依照苹果命令规范,将iPhone X的启动图片命名为Default-iOS11-812h@3x.png

格式

【LaunchImage】图片集合

如果没有创建【LaunchImage】图片集合的话,可以通过

  • step A: Target-> General
  • step B: App Icons and Launch Images
  • step C: 在【Launch Images Source】选项下点击点击 Use Asset Catalog 来设置 【LaunchImage】图片集合。

注意一:刚创建【LaunchImage】集合,可能选项的位置并没有如下图显示的这样。这个时候重启下项目就好了,算是Xcode的一个bug吧。

LaunchImage

然后把启动图片添加到工程 Images.xcassets 文件夹下的中的【LaunchImage】中。

注意二:如果你只是添加单张图片进去,不识别。那直接把之前已经放的图片删除掉,加上iPhone X的启动图片重新拖动一下就好。

最后结果如下图:

启动图片集合

网上很多说法是,把iPhone X的启动图片拖进去,还需要在在LaunchImage中的Contents.json文件中增加

{

"extent" : "full-screen",

"idiom" : "iphone",

"subtype" : "2436h",

"filename" : "图片名字.png",

"minimum-system-version" : "11.0",

"orientation" : "portrait",

"scale" : "3x"

}

这里我实验的结果是,直接拖进之后,这段json就已经生成了,不需要手动添加。

放到工程下的普通文件夹中

这种方式需要对启动图片(应用图标也是)的格式,命名,数量都有要求。并且需要在对应的Info.plist中设置一些参数。 这部分设置可以在我之前写的 《26- iOS项目基础一 - 官方应用图标和启动图片的尺寸规范和相应的工程设置》 中查看,也可以在下载官方Demo自己比对。

官方下载Demo

命名,图片数量和官方demo比对

注意:官方demo的 《Application Icons and Launch Images for iOS》

下边说添加iPhone X的启动图片,把图片拖进文件夹后,需要在info.plist文件的 UILaunchImages中添加Item,具体添加内如如下:

info.plist

注意:

(1) 打包ipa包上传到iTunes Connect中,会检查工程中是否添加了完整的启动图片,之前的经验,这种添加启动图片和图标的方式打包上传的话,如果图片命令有问题,直接在Application Loader校验阶段就会报错,拒绝上传请求。 但是我前边说过,没有查到官方指定的iPhone X启动图片的命名,也没有试过这种添加方式上传会不会有问题被拒绝,等到试验后告诉大家。

(2) 多target不要忘了每个info.plst都添加!

在LanunchScreen.xib中设置启动图片

因为出现的时间较近,很多老项目都没有采用,新项目没采用。所以偷懒不说了,官方原话是推荐这种方式,然后添加一张static image图片。我查阅,但是没了解该图片是什么意思,类似pdf格式的?

有兴趣的朋友可以试验下该种方式,或者有文章,在评论里留言和简信我,我添加到此位置!

官方说明





更多问题,欢迎加群讨论:qq群 :565191947

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适配iPhoneX详解之iOS项目添加启动图片LaunchImage的3种方式 的相关文章

  • unity中关于WWW过时后 怎么改成用UnityWebRequest的代码

    在学习Unity的时候 视频学到文件读取时都是在用WWW的类 但是WWW过时了 现在都在使用UnityWebRequest 网上找了好多资料都是开协程用UnityWebRequest 跟学习视频上的代码套不上 自己试了了一下午才知道怎么回事
  • STM32串口接收中断BUG

    原文来自 http blog csdn net love maomao article details 8234039 调试串口时 发现串口会出现频繁跳中断 导致无法执行主循环的问题 调试发现是串口中断硬件BUG 1 USART ITCon
  • 小明分享

    小明会定期分享SigmastarSSD201 202相关芯片技术文档 我们也有一个Sigmastar技术沟通群聊 有感兴趣的开发小伙伴也可以留言给小明 小明邀请你进入 SSD20X 平 台 LCD 屏 的 配 置 主 要 涉 及 两 个 结
  • Android Studio使用lombok插件

    1 使用android studio 在插件中检索lombok下载安装 2 build gradle导入依赖 implementation org projectlombok lombok 1 18 8 annotationProcesso
  • 使用PostMan测试接口的时候如何在Header中添加token验证

    前提 由于业务要求 每次接口请求都是post方式 且头部需要在自定义字段中定义token字段 做法 在Authorization中添加APIKey 然后添加token和token的值 因为这里只是简单的开发个测试接口 所以不能通过登录验证去
  • #Java 拆分数字123456为[1,2,3,4,5,6]

    原题目 有int num 123456 如何在不转字符串并且不使用split 方法的情况下将其拆分为 1 2 3 4 5 6 解答 int num 1233456 int fac 10 算术因子 ArrayList
  • $.ajax()post方式请求参数无法传递,request.getParameter()无法获取

    ajax post方式请求参数无法传递 request getParameter 无法获取 在前台页面中 ajax url ctx rediscluster delete do data rname rname type post data
  • vue使用高德地图报错:AMap.DistrictSearch is not a constructor问题解决

    这个问题说的 是没有初始化 解决如下 参考 https blog csdn net shidaping article details 78537730
  • 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.

    问题 from flask restful reqparse 自定义的help内容无法显示 代码如下 from flask restful import reqparse class EquipmentStaticView views Me
  • Unity Android手机触屏事件

    一 下面先说经常用的三个事件 手指按下 手指移动 手指松开 1 手指按下 if input touchCount 1 if input touches 0 phase TouchPhase Beagn 手指按下时 要触发的代码 2 手指在屏
  • 监控系统 服务器配置,监控系统服务器配置

    监控系统服务器配置 内容精选 换一换 简要介绍Mesos是一个集群管理器 提供了有效的 跨分布式应用或框架的资源隔离和共享 可以管理Hadoop MPI Hypertable Spark等集群 语言 C C 一句话描述 集群管理器开源协议
  • docker 报错 Container is not running

    我在运行docker exec it 56b90db5253e bin bash报错 出现这个问题 是因为Container容器之前已经启动过了 需要执行docker start 56b90db5253e就可以解决了
  • 转:前端 100 问:能搞懂80%的请把简历给我

    前端 100 问 能搞懂80 的请把简历给我 引言 半年时间 几千人参与 精选大厂前端面试高频 100 题 这就是 壹题 在 2019 年 1 月 21 日这天 壹题 项目正式开始 在这之后每个工作日都会出一道高频面试题 主要涵盖阿里 腾讯
  • 【工具】谷歌浏览器禁用JS

    操作 F12 进入调试窗口 ctrl shift p 调出命令行工具 输入 disable javascript 选中后回车执行 反之 enable javascript 启用JS 或者直接关闭调试窗口 好处 绕开JS校验 可以直接复制代码
  • java导入csv格式文件之身份证格式处理

    一 出现的问题 csv中的身份证号如下图 导到数据库中的结果 因此怎样导入才能使身份证能够正常导入呢 2 解决方案 第一步 选中身份证那一列 第二步 右键选择 设置单元格格式 第三步 数字列中 选择 特殊 gt 邮政编码 点击确定
  • MySql基础教程(二):数据类型

    MySql基础教程 二 数据类型 MySQL 中定义数据字段的类型对你数据库的优化是非常重要的 MySQL 支持多种类型 大致可以分为三类 数值 日期 时间和字符串 字符 类型 数值类型 MySQL 支持所有标准 SQL 数值数据类型 这些
  • 【C++11】随机数引擎与随机数类

    文章目录 随机数引擎与伪随机数 获取 真随机数 静态随机数引擎 随机数种子 std random device 服从均匀分布的整型随机数 服从均匀分布的实型随机数 服从标准正态分布的随机数 服从二项分布的随机结果 随机数引擎与伪随机数 C
  • 【CSDN竞赛】第八期解题报告

    文章目录 感想 关于自己 关于平台 第一题 难度 入门但是不完全入门 题目描述 90分做法 100分做法 第二题 难度 中等 题目描述 100分做法 第三题 难度 简单 中等 题目描述 100分做法 第四题 难度 中等 题目描述 100分做
  • 使用Qt开发俄罗斯方块游戏(1)

    使用Qt开发俄罗斯方块游戏 可能大家都比较感兴趣吧 那么就快看下面的详细讲解吧 其实在Qt Creator中已经有了俄罗斯方块的例子 大家可以在帮助中搜索Tetrix进行查看 其内容如下 但是对于初学者 这个例子并不是那么容易就能看懂 所以

随机推荐

  • 【图卷积神经网络】1-入门篇:为什么使用图神经网络(下)

    为什么使用图神经网络 在本书中 我们将重点介绍图学习技术中的深度学习家族 通常称为图神经网络 GNNs是一种新的深度学习架构类别 专门设计用于处理图结构化数据 与主要用于文本和图像的传统深度学习算法不同 GNNs明确地用于处理和分析图数据集
  • CSS中line-height属性

    line height CSS 属性用于设置多行元素的空间量 如多行文本的间距 对于块级元素 它指定元素行盒 line boxes 的最小高度 对于非替代的 inline 元素 它用于计算行盒 line box 的高度 CSS Demo l
  • Latex中插入多张图片,实现并排排列或者多行多列排列

    最近需要用latex插入多张图片 达到这么一个效果 但是我原来只插入过一张图片 图片内容来源于网络 是国漫一人之下的宝儿姐 强推这部国漫 代码如下 效果如图 begin figure centering includegraphics he
  • yolov3训练讯飞安检图像数据集记录

    yolov3训练讯飞安检图像数据集记录 前言 前置工作 数据集 yolov3配置 下载yolov3项目代码 修改Makefile文件并编译 实验 准备数据集 下载Imagenet上预先训练的权重 修改darknet cfg voc data
  • 用std::string::compare()用法

    c 系列文章目录 c 处理文本相对于python等脚本语言还是挺麻烦的 往往需要和fstream fstream string 一起配合使用才能完全把文本解析出来 其实 string并不是一个单独的容器 只是basic string 模板类
  • Unity3D高级动画(Animator)-动画状态机

    动态系统种类 Animation动画状态机 是旧版的动画状态机 Animator动画状态机 是新版的动画状态机 其实就是由Animation组成的 这里我们常用这个 Animator的使用 1 从网上找的3D模型FBX文件 包括了模型的动画
  • random_queue:支持push, popRamdom的数据结构

    pop哪一个元素 决定了queue stack priority queue的不同 新加一个random queue 等概率的从集合里取出一个元素pop 1 先用rand int l int r 得到一个随机位置 2 和top交换 3 to
  • Sonar部分问题解决归纳

    1 Refactor this method to not always return the same value 方法的返回值应根据不同情况而发生改变 不能返回固定值 实际判断是应结合返回值赋值情况等决定是否更改 2 String li
  • ARMV8体系结构简介:AArch64系统级体系结构之编程模型(4)- 其它

    1 前言 2 可配置的指令使能 禁用控制和trap控制 指令使能 禁用 当指令被禁用 则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱 进入陷阱的指令会产生trap异常 路由规则如下 1 当前为EL1 则陷阱异
  • 【JDBC】JDBC之ResultSet 结果集

    ResultSet 结果集 一 ResultSet 结果集 1 1 接收结果集 1 2 遍历ResultSet中的数据 1 2 1 遍历方法 1 3 综合案例 1 3 1 根据列的名称获取 1 3 2 根据列的下标获取 二 常见错误 一 R
  • Android Studio 安装虚拟机报错 Intel® HAXM installation failed.

    Android Studio 安装虚拟机时报错 Intel HAXM installation failed To install Intel HAXM follow the instructions found at https gith
  • React - 甘特图时间轴

    组件调用
  • MySQL数据库基础

    目录 数据库介绍 什么是数据库 数据库的分类 1 数据库的操作 创建数据库 显示数据库 使用数据库 删除数据库 2 表的操作 创建表 删除表 3 常用数据类型 插入数据 查询数据 从本篇起就又要开始新的篇章了 数据结构初级阶段的就告一段落了
  • 未能加载文件或程序集 或它的某一个依赖项。试图加载格式不正确的程序。问题解决

    我使用x64程序 运行时总报错 解决方案 仔细检查项目引用的dll 有win32的直接移除 换x64的 介绍如何使用工具查看dll是否是x86或者x64的 如何查看dll以及lib文件是32位还是64位 参考 https blog csdn
  • RestSharp访问带有账号密码的接口地址实现方法

    可以将账号密码封装成一个HttpBasicAuthenticator 然后将其当作参数放置到RestSharpClient中 即可成功解决 其在postman中的表现是
  • Linux 压缩解压命令

    linux解压 tar命令 tar命令 tar cxtzjvfpPN 文件与目录 参数 c 建立一个压缩文件的参数指令 create 的意思 x 解开一个压缩文件的参数指令 t 查看 tarfile 里面的文件 特别注意 在参数的下达中 c
  • sql常用查询语句

    单表查询 查询pname和price 去掉pname和price同时重复的数据 select distinct pname price from product 查询商品名和价格并起别名 select pname as 商品名称 price
  • python三种等待元素方法

    在做web或app的自动化测试经过会出现找不到元素而报错的情况 很多时候是因为元素 还没有被加载出来 查找的代码就已经被执行了 自然就找不到元素了 那么我可以用等待 元素加载完成后再执行查找元素的code Python里有三种等待的方式 一
  • unity,  在编辑界面中隐藏公开变量

    unity默认声明为public的变量都是在编辑界面可见的 如果要隐藏的话就可以这样做 一种是使用属性 Public float Age get set 另一种是使用标签 HideInInspector public float dista
  • 适配iPhoneX详解之iOS项目添加启动图片LaunchImage的3种方式

    启动图片 测试环境 Xcdoe 9 iOS11 这篇文章 主要是解决公司发布多个马甲app 启动图片和图片放到了项目普通文件夹下的情况 文章可以参考我之前写的 如果公司只是固定的产品 那直接放到Images xcassets 下或者使用La