- 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 自动设置这个字段:
<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 的项目设置中已经配置为启动画面,就会自动生效,无需代码干预。