搜索

首页  >  问答  >  正文

swift - iOS启动页面之后会黑屏1秒左右才进入主画面

我的app启动页面是用的图片,如下图。

但是每次启动的时候,启动图片结束后会黑屏1秒左右才进入主页面,这是为什么呢?
而且奇怪的是,并不是次次都黑屏,有时候又不黑屏。

大家讲道理大家讲道理2773 天前737

全部回复(9)我来回复

  • ringa_lee

    ringa_lee2017-04-18 09:15:32

    找到原因了,是加载的首页在初始化的时候有一个读取数据的操作是同步进行的,会阻塞UI线程,导致UI短暂的黑屏,把它改成异步的就对了。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-18 09:15:32

    怀疑是耗时太长了。

    可以把 appDelegate 的didFinishLaunchingWithOptions 第一行打印一下时间戳,首页 viewDidAppear 打一下时间戳,看两者之差,是不是相距过长。主线程是不是有耗时操作了,比如读写数据库、加载大文件之类。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-18 09:15:32

    偶发性的Bug是比较难处理的,第一个界面的ViewController在ViewAppear前做了什么阻塞主线程的操作么?
    如果不是可以先试试把LaunchScreen指定到一个StoryBoard文件然后将图片铺满LaunchScreen

    回复
    0
  • PHPz

    PHPz2017-04-18 09:15:32

    你的window的rootViewController是设置的吗

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:15:32

    黑屏就是你的rootVC的界面没有显示出来吧,或者本身是黑的或空的。建议把rootVC的view设成醒目的颜色,比如红色,看看情况

    回复
    0
  • PHP中文网

    PHP中文网2017-04-18 09:15:32

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor WhiteColor];
    self.window.rootViewController = XXX;
    [self.window makeKeyAndVisible];

    回复
    0
  • ringa_lee

    ringa_lee2017-04-18 09:15:32

    是不是没有添加相对应的设备屏幕尺寸的启动页

    回复
    0
  • 迷茫

    迷茫2017-04-18 09:15:32

    启动页没有加载,不要用lanuchimage,创建一个StoryBoard上铺张图片,就ok了

    回复
    0
  • 迷茫

    迷茫2017-04-18 09:15:32

    我的也出现了同样的问题,LaunchImage显示的,重新唤醒程序的时候页面出来了,也是要黑的闪一下屏幕的,

    回复
    0
  • 取消回复