【问题标题】:At which point the launch image is presented/removed in iOS app startup sequence此时启动图像在 iOS 应用程序启动序列中显示/删除
【发布时间】:2015-03-13 20:21:09
【问题描述】:

有很多iOS游戏,你可以看到首先显示启动图像,然后在一定时间后添加预加载器。大约一秒钟,甚至两秒钟后,这是一个明显的延迟。我想知道为什么会这样,我认为这样的事情正在发生:

  • 显示启动图像是因为视图尚未准备好
  • 现在,大约一两秒后,视图已准备就绪,启动图像已移除,场景已初始化
  • 然后,将预加载器添加到场景中(或者直接在视图控制器中完成),加载资源后,调用完成处理程序删除预加载器,用户现在可以使用界面

并且由于视图正在初始化的部分,在显示启动图像时无法立即显示预加载器?但是如果还没有视图对象,那么启动图像是如何显示的呢?我想我错过了什么......

那么,问题是,在应用启动顺序中,启动图像在哪一点出现/删除?在哪个事件/方法执行之后?我想在第一次执行 -viewWillAppear 之类的东西后将其删除?我希望这有点道理..

【问题讨论】:

    标签: ios iphone sprite-kit preloader


    【解决方案1】:

    您的应用启动后会立即显示应用的启动图像。由此得名。它在 appDelegate appDidFinishLaunching: 方法运行时被移除。

    如果你想手动为你的启动图片设置更长的显示时间,你可以将这段代码添加到appDidFinishLaunching:方法中

    sleep(4); 
    

    4 是秒数。

    【讨论】:

    • 我明白...但是如果我阻塞主线程几秒钟,例如 NSDate *date = [[NSDate alloc] init];while ([date timeIntervalSinceNow] > -3) {}在 viewWillAppear 内部,然后调用 appDidFinishLaunching,但在这几秒钟内仍会显示启动图像。你知道这是为什么吗?
    • @Whirlwind - 不知道。阻塞主线程不是一个好习惯,所以我不确定你的最终目标是什么。如果您只是在寻找应用程序的生命周期,您可以查看之前的 SO 问题 stackoverflow.com/questions/17366107/… 并查看 Apple 的此文档 developer.apple.com/library/ios/documentation/iPhone/Conceptual/…
    • 我只是想找到一种方法来模拟长时间运行的任务,仅此而已......只是为了测试目的,因为我懒得模拟暂时阻塞主线程的真实情况,比如初始化大量真实游戏资产... :)
    猜你喜欢
    • 2016-11-02
    • 2014-11-26
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多