iOS LaunchScreen.storyboard 踩坑指南
2020年6月30日以后,苹果强制要求使用 LaunchScreen.storyboard 来设置启动图。以前我用 launchImage 每次让UI出一堆图, 自己替换也麻烦, 操作起来方便不少.
这种方式做启动页, 实际是在程序第一次启动时, 用 LaunchScreen.storyboard 的内容绘制了一张图片, 保存起来了, 保存在 App 的 /Library/SplashBoard/Snapshots 文件夹里, 这样以后再启动的时候就可以直接用了,
优点:
- 上传到 AppStore 的 ipa 包体变小了.
- 操作简单了.
一. 图片在不同大小屏幕上不存在拉伸
这种情况的启动图一般设计不是很复杂, 可以直接一张图片搞定. 搞个 UIImageView 拖到 LaunchScreen.storyboard, 设置图片, 设置约束.
二. 图片比较复杂, 在不同大小屏幕拉伸严重
这种情况一般一张图片拉伸会比较严重, 此时就需要换一种方式去做, 把图片种元素切分出来, 分别做成很多小图片, 当然也可以是文字, 当作正常页面去做布局. 设置约束. 这样在不同的屏幕上显示虽然不太一样, 但是不会被拉伸, 视觉效果还是可以的
坑点一:
LaunchScreen.storyboard 所需的所有图片资源, 都放到根目录下, 不要放在 Assets.xcassets 资源文件夹里, 否则部分机型显示不出来.
坑点二:
不要随便改图片的后缀名, UI 给的是 jpg, 就不要直接改成 png, 否则后果自负.
坑点三:
在开发过程中, 难免会更换启动图, 当你开心的把新图片改成和原来的图片相同名称后, 勇敢的按下 cmd + R, 程序启动的那一刻, 傻眼了吧, 发现并没有更换成功, 即使你这台设备成成功了, 肯定会有不成功的设备, 比如 8P 就是个异类.
各种清理缓存, 卸载重装, 关机重启, 如果这样都还不行, 遇到问题不要慌, 大招来了.
把所有用到的图片, 改个名字, 再清理缓存 , 卸载, 这样一般会好. 如果再不行, 就把 LaunchScreen.storyboard 中的控件全部删除, 重新做一遍.