You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xcode中设置Launch Screen启动屏的展示时长

iOS调整Launch Screen启动屏展示时长的实现方案

iOS系统的Launch Screen本身没有公开API支持直接设置固定展示时长,它默认会在App启动初始化完成、主线程就绪后自动消失。要延长展示时长,可通过以下两种方案实现:

方案1:主线程睡眠(快速实现,不推荐)

在App启动初始化的回调方法中主动阻塞主线程指定时间,即可延长启动屏展示时间:

  • 纯UIKit无SceneDelegate的项目:在AppDelegate.m/AppDelegate.swift的application:didFinishLaunchingWithOptions:方法最开头添加睡眠代码:
    // Swift示例,数字为要延长的秒数,建议不超过3秒
    Thread.sleep(forTimeInterval: 2)
    
    // Objective-C示例
    [NSThread sleepForTimeInterval:2];
    
  • 带SceneDelegate的项目:在SceneDelegate.swift的scene:willConnectToSession:options:方法最开头添加上述睡眠代码即可。

该方案优点是实现成本极低,缺点是会阻塞主线程,可能导致App启动阶段无响应,时长超过3秒有被苹果审核拒绝的风险,仅适合本地调试时临时使用。

方案2:自定义启动屏过渡层(生产环境推荐)

通过添加和系统Launch Screen视觉完全一致的自定义覆盖层,自主控制展示时长,无性能问题也不会触发审核风险:

  1. 新建一个和Launch Screen.storyboard布局、素材完全一致的控制器或视图,保证不同设备尺寸下的展示效果和系统启动屏完全相同,避免跳转闪烁。
  2. 在App启动完成、系统Launch Screen即将消失的节点,将自定义的启动屏视图添加到当前window的最顶层,覆盖住主业务界面。
  3. 通过GCD延时任务控制视图移除时机,示例代码:
    // Swift示例,延时2秒后移除自定义启动层
    DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
        self.customLaunchView.removeFromSuperview()
        // 后续可添加自定义淡出等过渡动画提升体验
    }
    

该方案不阻塞主线程,支持自定义过渡动画、可灵活调整展示时长,是生产环境的首选实现方式。

注意事项

  • 不要将启动屏总展示时长设置超过3秒,不符合苹果的用户体验规范,容易触发审核拒绝。
  • 使用自定义覆盖层方案时,要做好横竖屏、不同分辨率设备的适配,保证和系统Launch Screen的展示效果完全一致,避免出现视觉跳变。
  • SwiftUI项目可直接在根视图上添加启动屏覆盖层,在onAppear回调中触发延时移除逻辑即可。

内容的提问来源于stack exchange,提问作者Sophia Guelfi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:45:05