【问题标题】:App Loading and Splash Screen应用程序加载和启动画面
【发布时间】:2011-10-25 02:00:34
【问题描述】:

我的应用下载了大量数据,大约需要几秒钟。我的初始屏幕显示然后消失,然后在加载第一个视图之前出现几秒钟的白色空白屏幕。有没有办法保持启动画面出现?是否可以在 AppDelegate 中创建视图并保持显示,直到所有数据加载完成并且视图即将加载?

【问题讨论】:

  • 在我看来,如果可能的话,您应该在后台加载该数据,并让 UI 做出响应。
  • @Nayefc: +1 好问题 :)
  • @dasdom 是的,我可以做到这一点 - 使用多线程和 GCD,但 UI 没有数据就无法显示。另外,这只会在应用程序首次启动时发生,所以我可能会显示一个带有一些背景的漂亮活动指示器。

标签: iphone objective-c ios cocoa-touch


【解决方案1】:

使用 MBProgressHUD 你可以在这里获得完整的源代码。

https://github.com/jdg/MBProgressHUD

希望这会有所帮助。

这是一个加载视图,它是活动指示器。

编辑:

您可以在后台下载数据时将背景视图添加到窗口中

[window addSubview:<backgroundView>.view];

然后,一旦数据被下载,你可以从窗口中删除相同的数据并将你的主视图控制器添加到窗口中

[<backgroundView>.view removeFromSuperView];
[window addSubview:<mainView>.view];

希望对你有所帮助。

【讨论】:

  • 是的,我已经在使用 MBProgressHUD。我应该只在活动指示器后面显示背景图像吗?所以我会在 AppDelegate 中创建一个带有图像的视图,将 ProgressHUD 粘贴在顶部并在视图即将加载时将其移除。这是一个好的解决方案吗?
  • 这不是必需的,但通过异步执行数据获取过程来最小化用户必须等待的时间。希望这对你有帮助:)
  • 感谢您的回复。是的,我正在异步下载数据。但是在几秒钟内,progressHUD 在白色背景上看起来很丑,这就是为什么我想在几秒钟内粘贴一些漂亮的背景。一些简单的事情。
  • 还可以显示背景,如果你愿意,可以显示一些漂亮的背景。
  • 是的,那很好。您可以将 appdelegate 中的视图作为窗口的子视图添加到窗口中,下载数据后,您可以使用 removeFromSuperview 从窗口中删除带有背景的视图,然后您可以将带有数据的 viewController 作为其子视图添加到窗口中.这样它看起来会很漂亮和创新。希望这对你有帮助:)
【解决方案2】:

是的,您可以显示一个带有初始屏幕的视图(也可能是一个活动指示器,只需记住将数据加载到单独的线程中,否则它不会旋转),然后在加载完成时切换到正确的视图完成。

【讨论】:

    【解决方案3】:

    在实际视图之前看到的白色视图是主窗口。只需在 MainWindow.xib 中将启动图像设置为窗口的背景图像,就完成了。或者,您还可以添加一个始终在窗口顶部旋转的微调器,这样当您的应用加载时,您首先会看到启动画面,然后是带有微调器的启动画面,然后您的视图就会出现。

    【讨论】:

      【解决方案4】:

      我确实在 viewDidLoad 中加载了一个带有默认图像的 ImageView,如果您在数据之前将其隐藏。

          UIImage* imageDefault = [UIImage imageNamed:@"Default@2x.png"];
          CGRect frame;
          frame.origin.x = 0;
          frame.origin.y = -20;
          frame.size.width = 320;
          frame.size.height = 480;
      
          splash = [[[UIImageView alloc] initWithFrame:frame] autorelease];
          [splash setImage:imageDefault];
          [self.view addSubview:splash];
         .
         .
      
      
          splash.hidden=YES;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多