最近公司的应用更换了启动画面,在这次更换过程中,经常会出先启动画面黑屏或者不显示的情况,在这里总结了一些解决方案,仅供有需要的开发者进行参考。
如果在使用Launch Screen.storyboard的过程中发现有黑屏的现象,可以从以下几面进行查看,看是否能解决黑屏的现象!
1.查看启动屏图片的名字
尽量不要使用Launch这样的字眼,至于原因,可能跟系统有关。如有有了解的欢迎留言分享。
2.查看启动屏图片的尺寸
这个不太确定是否会影响到,可以尝试下。
3.启动图片工程中位置
网上很多开发者都是将图片放在工程的根路径下,而不是放在Assets.xcassets中。
4.启动图的格式
建议使用png,尽量不要使用jpg
5.查看工程中是否仍在使用LaunchImage
建议将工程中与LaunchImage有关的全部删掉,包括Assets.xcassets中。最好在检查下plist文件。
6.检查首页是否有存读取数据的操作
这个是在网上查资料看到的,具体原因是说加载的首页在初始化的时候有存读取数据的操作,会阻塞UI线程,导致UI短暂的黑屏,把它改成异步或者调整下代码执行的顺序。这个应该是有影响的,在我们应用首页有一个存userdefault的操作,数据量不是很大,但将方法执行放在viewWillAppear中,启动画面就正常了。
7.更换图片名字
这个是很无语的一个办法,不过确实是有效。但并不是长久之计,不知道什么时候可能还会出现黑屏。
8.删除应用或者重启手机
ps:
另外,如果之前工程中启动方式使用的是Launch Screen.storyboard,现修改为LaunchImage的话,在这次开发测试中发现,如果不把之前的应用删掉的话,Launch Screen.storyboard是不起作用的,在网上查了一下,可能是因为Launch Screen.storyboard一直在应用包中,即使重新部署应用到手机上并且把工程中的Launch Screen.storyboard文件删除,应用在启动时还是会去加载应用包中的Launch Screen.storyboard文件。这个测试了好多次仍然没有找到解决方案,如果有哪位开发者有解决方案,欢迎留言。在此谢过!
使用Launch Screen.storyboard可以与sizeclass一起结合使用,不同的compact和regular加载不同图片。
如果有不同的建议和想法欢迎留言分享!