当我杀死我的iOS应用并重新启动它时,我看到的快速屏幕显示顺序是
LaunchScreen.storyboard
中定义的屏幕。ViewController
的{{1}}方法中设置的AppDelegate
。从我阅读的Apple文档中看来,在应用程序启动过程中,如果存在快照,则iOS使用该快照代替启动屏幕。为什么我同时看到启动屏幕和快照?
此屏幕录像显示了问题。启动屏幕为红色。主屏幕为白色。第二个屏幕为绿色。我导航到绿色屏幕,然后将应用程序置于后台,以使iOS拍摄绿色屏幕截图。然后我杀死了应用程序。重新启动应用程序时,顺序为启动/红色,屏幕截图/绿色,首页/白色。我正在使用iOS 12.1.1的iPhone 6进行测试。
在状态保存过程中,UIKit会捕获应用程序的用户界面并将其存储在图像文件中。重新启动您的应用后,系统会显示此快照图像代替您的应用的默认启动图像,以保留您的应用仍在运行的概念。
答案 0 :(得分:1)
我无法确认您的描述。我的测试表明,如果您过早终止应用程序,则在下次启动时会丢弃前一个背景屏幕截图,而仅使用启动屏幕。
这是我的考试:
启动屏幕为红色
初始视图控制器的视图为白色
辅助视图控制器的视图为绿色
发生了什么事
您将看到我启动,然后从白色视图移至绿色视图。
然后我将应用程序设为后台,以确保拍摄了快照。
然后我将应用程序带回前台,然后进入应用程序启动器,以便可以看到快照,该快照的确是绿色的。
然后我杀死该应用程序并重新启动。我在电影的这一部分中使用了慢动作,您可以清楚地看到我们使用红色的启动屏幕,并淡化为初始视图控制器的白色。绿色永远不会消失。
也许您的测试过程有误(仅在设备上进行测试)。也许您进入错误的屏幕,然后跳回打开屏幕(这似乎是最有可能的解释)。