Swift如何在Storyboard中引用未存放在*.xcassets文件夹的图片
LaunchScreen 升级后图片不更新的解决方案
问题原因
iOS系统会对启动屏的渲染结果做长期缓存,即使你替换了*.xcassets内的启动屏图片,用户覆盖升级App后系统仍然会优先读取旧缓存,导致新图片无法显示。
根目录图片引用步骤
你已经完成了将图片放到项目根目录的操作,接下来直接在LaunchScreen.storyboard中配置即可,不需要绑定视图控制器:
- 确认你的图片文件按照多倍率规范命名:
logo.png、logo@2x.png、logo@3x.png,导入Xcode时勾选对应App的target,不要加入任何xcassets资源库 - 打开LaunchScreen.storyboard,拖入UIImageView控件到对应位置,配置好约束
- 在UIImageView的属性检查器中,
Image栏直接填写图片的基础名称(不需要加倍率后缀和.png扩展名,比如上面的示例直接填logo即可) - 检查图片的Target Membership设置,确保已经勾选了你的App主target,保证打包时会被拷贝到App主Bundle根目录
注意:如果测试时仍然显示旧图,先卸载设备上的旧App,清理Xcode的DerivedData缓存后重新编译即可,正式覆盖升级场景下不需要用户卸载,新安装包会自动加载新图片。如果后续需要更新启动屏图标,直接替换项目根目录下的同名图片即可,不需要修改storyboard配置。
内容的提问来源于stack exchange,提问作者Zim
相关产品推荐
相关产品推荐

