LaunchScreen.storyboard 启动页设置

本文详细介绍了如何解决iOS应用在iPhone X上启动屏图片不显示的问题,包括删除旧配置、设置Launchscreeninterfacefilebasename、创建ImageSet、调整图片尺寸及填充模式等步骤。

 

 

在 LaunchScreen 中拖上了一个 imageView 然后设置图片,发现图片在 iphonex上并不生效,启动页黑屏或者白屏,几乎是随机的。解决方法:

1、将Assets.xcassets中的LaunchImage.launchimage全部删除
2、Build Setting中红色圈起来部分删除

在这里插入图片描述

在这里插入图片描述

3、在info.plist中新增 Launch screen interface file base name,值为LaunchScreen
在这里插入图片描述

4、在Assets中新建Image Set
在这里插入图片描述

5、然后放一张图,我这边放的是1125*2436,(当然@2x  750x1334 的也可以放)
在这里插入图片描述
同时在该目录下添加一个Contents.json文件,并copy下面一段代码,不过目前都是可以自动生成了

 

{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "你自己的图片",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

6、将上面的两的资源目录下(除assets目录),否则,会有白屏的情况出现 

7、以上准备好之后,打开你的LaunchScreen.storyboard添加imageview控件,Xcode 11版本在这边拖入

在这里插入图片描述

图片的填充模式,需要fill

此处选择的资源就是上面第四步创建的imageSet的名称

在这里插入图片描述

8,设置图片的约束条件,四个方向均设置为0

在这里插入图片描述

图片替换不要使用覆盖,很可能会出现,有缓存的情况

导致原因

原因可能是之前的闪屏图片在手机里缓存下来了,再更新的话,图片名一样的两张图片,系统不知道该加载哪一张吧。

解决

我们在每次上线前将闪屏图片资源的名字都会改一下,这样的话即使之前有缓存,现在也要加载最新名字的图片,这样能避免这个问题。

参考:https://www.jianshu.com/p/d2b0f20e2e96

### 如何在 iOS 中通过 LaunchScreen.storyboard 配置应用的启动页 #### 创建 LaunchScreen.storyboard 文件 如果项目中尚未存在 `LaunchScreen.storyboard` 文件,则可以通过 Xcode 添加一个新的 Storyboard 文件并命名为 `LaunchScreen.storyboard`。确保该文件被指定为项目的启动屏幕文件,在项目设置中选择目标,进入 **General** -> **App Icons and Launch Images** 下找到 **Launch Screen File** 并将其设置为 `LaunchScreen.storyboard`[^1]。 #### 设计启动页布局 打开 `LaunchScreen.storyboard` 后,可以像设计普通界面一样添加 UI 组件(如 UILabel、UIImageView 等)。需要注意的是,启动页的设计应尽可能简单,避免复杂的动画效果或过多的内容加载,因为这可能会影响用户体验[^2]。 以下是具体操作步骤: - 将所需的 UI 控件拖拽到 storyboard 上。 - 设置控件的位置和大小,并为其绑定约束条件(Constraints),以确保其能在不同设备屏幕上正确显示[^5]。 #### 关联 Assets 资源 对于图片或其他媒体资源,可以在 `Assets.xcassets` 中创建对应的 Image Set 或其他类型的资产集合。随后在 `LaunchScreen.storyboard` 的 ImageView 属性面板中选择相应的资源名称作为图片来源[^3]。 #### 处理兼容性和适配问题 由于 Apple 对于新提交的应用程序强制要求使用 `LaunchScreen.storyboard` 替代传统的静态图片方式,因此开发者需特别注意以下几点以保证最佳体验[^4]: - 测试不同的屏幕比例和分辨率下的表现; - 如果涉及动态数据展示或者网络请求初始化等内容,请勿尝试在此阶段完成此类逻辑处理——仅限静态呈现部分。 ```swift // 示例代码片段:假设需要隐藏某个 label 在特定条件下 override func viewDidLoad() { super.viewDidLoad() let launchLabel = self.view.subviews.first(where: { $0 is UILabel }) as? UILabel if let unwrappedLabel = launchLabel, unwrappedLabel.text == "Sample Text" { unwrappedLabel.isHidden = true } } ``` 上述 Swift 代码展示了如何访问由 Launch Screen 加载后的首个子视图中的标签组件实例,并基于一定判断改变它的可见状态属性值。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值