关于使用 LaunchScreen.storyboard 作为启动图方式的几个问题

2016-05-26 10:42:17 +08:00
 kobe1941

启动图有两个默认的展示场景:

①.点击 APP icon 的全新启动;

②.APP 在后台,通过 UIApplication 的 openURL :方法被其他 APP 拉起到前台时会先出现启动图。

iOS 8 及以上系统可以使用 LaunchScreen.storyboard ,我在用 LaunchScreen.storyboard 的时候遇到了如下几个问题:

1.设置启动图为 A ,此时上述两种场景,均出现启动图 A ,没有问题;

2.在 LaunchScreen.storyboard 中更改启动图为 B ,上述①的场景没有问题,启动图会更新,但是上述②的场景发现启动图还是 A ,并没有更改为 B ,重启手机并没有作用,除非卸载掉 APP 重新安装才会更换为 B 。

因为 iOS 7 仅支持 Images.xcassets 的方式来设置启动图,所以 iOS 7 下并没有上述问题。

我在测试的时候因为要同时兼容 iOS7 和 iOS8 ,所以 Xcode 的设置如下图:

同时在 LaunchScreen.storyboard 处有勾选 Use as Launch Screen 选项。

后来在测试的时候发现, APP 在后台时,通过 openURL 的方式把它拉起到前台时所使用的启动图,会保存在这个目录下:/Library/Caches/Snapshots/,如下图所示:

更新或者删掉 Snapshots 目录,可以做到让更换拉起时的启动图的目的,但是模拟器可以删这个文件夹,真机不能删,系统提示没有权限,猜测应该是因为这是系统自己创建的目录,用户不能自己删。。。

我的目的就是当使用 LaunchScreen.storyboard 这个方式来设置启动图时,我更改了启动图后,上述②这个场景也能够同步的修改启动图片。希望各位大神帮忙,感激不尽!!

另微信和微博都实现了这个效果,不过它们好像都没有更换过启动图, QQ 则没做这个效果, iOS8 下从后台拉起到前台时直接显示当前界面,没有用启动图来遮挡一下。。

17931 次点击
所在节点    iDev
1 条回复
kobe1941
2016-05-27 10:59:20 +08:00
这个问题只要使用了 LaunchScreen.storyboard ,且更换过启动图的都会遇到的
各位大神求破呀。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/281346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX