LaunchScreen
- https://developer.apple.com/documentation/xcode/specifying-your-apps-launch-screen
- https://developer.apple.com/design/human-interface-guidelines/launching
LaunchScreen.storyboard 是 iOS 中用来在 App 启动时展示的启动画面,作用是提升用户体验,让 App 看起来“秒开”。下面是它的使用方式、步骤、生效机制和注意事项。
📱 什么是 Launch Screen(启动画面)?
- 它是 App 启动时短暂显示的界面,用来掩盖 App 加载内容的过程。
- 系统自动加载,不由你的代码控制。
- 本质上是一个 Storyboard 文件,不能使用动态逻辑,只能使用静态布局。
🛠️ 使用步骤
步骤 1:创建 LaunchScreen.storyboard(如果项目中没有)
- 在 Xcode 中右键项目 →
New File - 选择
Storyboard→ 命名为LaunchScreen.storyboard - 默认会添加一个
View Controller场景
步骤 2:配置 Launch Screen
你可以在 LaunchScreen.storyboard 中:
- 添加
UIImageView显示 Logo 或背景图 - 设置背景色
- 添加
Label显示品牌名称等
⚠️ 不能添加动态内容,比如 Timer、按钮交互或代码逻辑。
步骤 3:在 Xcode 项目设置中启用
-
打开 Xcode 左侧导航栏 → 选中顶层项目
-
进入
General标签页 -
在
App Icons and Launch Images区域:- 找到
Launch Screen File - 输入或选择
LaunchScreen(不带.storyboard后缀)
- 找到

步骤 4(可选):设置全屏样式或暗色模式适配
- 你可以设置 Auto Layout 以适应不同屏幕大小
- 使用
Color Set设置不同模式下的颜色 - 可以借助
Asset Catalog提供的Appearance支持暗黑模式
⚙️ 生效机制
- 系统在 App 进程还未启动时就会读取 Info.plist 中的
UILaunchStoryboardName(默认由 Xcode 自动配置)。 - UIKit 会根据设备尺寸、系统暗色模式等加载并渲染该 Storyboard 内容。
- App 加载完成后会立刻替换为你自己的 UI(如
@main的 SwiftUI 或AppDelegate/SceneDelegate中设置的窗口)
🧾 Info.plist 中的对应字段
Xcode 自动设置这个字段:
xml
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
你也可以手动指定(但通常不建议更改)。
🚫 不推荐的旧方法(仅供参考)
- 以前 iOS 使用 LaunchImage(启动图片),通过固定图片适配不同设备尺寸。
- 从 iOS 13 开始,不推荐使用 LaunchImage,推荐统一使用
LaunchScreen.storyboard。 - 若你仍使用 LaunchImage,需要在
Asset Catalog中配置LaunchImage资源集,但这限制了响应性和暗黑模式。
🚨 注意事项
| 项目 | 限制 |
|---|---|
| 动态逻辑 | ❌ 不支持 |
| 计时器/动画 | ❌ 不允许 |
| 透明背景 | ❌ 不生效,背景必须填满 |
| 多语言 | ✅ 支持,如果你添加了 Localized Storyboard |
| Auto Layout | ✅ 强烈推荐(自适应) |
| 安全区域 | ✅ 使用 Safe Area 布局可更好地适配刘海屏 |
🎯 设计建议(来自 Apple HIG)
- 匹配 App 首屏内容,减少“闪变感”
- 使用品牌颜色、Logo、图形或简化版 UI
- 不要加载网络图像、不要添加延迟,系统会立即替换它
✅ 示例用法总结
你可以在 LaunchScreen.storyboard 中设计一个画面,比如:
- 背景:白色
- 居中:App 图标(使用
UIImageView) - 下方:一句口号(
Label)
设置完后保存,确认在 Xcode 的项目设置中已经配置为启动画面,就会自动生效,无需代码干预。