启动图有两个默认的展示场景:
①.点击 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 下从后台拉起到前台时直接显示当前界面,没有用启动图来遮挡一下。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.