预加载UIView以最小化运行Iphone应用程序时的延迟

时间:2010-08-16 16:50:08

标签: iphone uiview delay preload

我有一个iphone应用程序,其中一个视图需要从各种互联网站点获取大量数据。因此,加载所需的时间是不可接受的。我想知道在'applicationDidFinishLaunching'方法中是否有任何方法加载视图,因此延迟是在应用程序启动时而不是在导航中途。

非常感谢!

3 个答案:

答案 0 :(得分:1)

您希望尽快加载视图,然后启动后台线程或异步请求以提取数据。

不建议在初始加载期间使应用程序休眠。我相信SpringBoard将终止任何需要超过30秒才能完成加载的应用程序。

让用户做一些没有可见反馈的用户体验(例如动画UIActivityView)是一种糟糕的用户体验

答案 1 :(得分:0)

您是否考虑过异步加载数据?在加载时,UI不会被阻止。例如,当您的应用加载数据时,您可以显示一个漂亮的加载轮。这就是所有优秀应用程序的功能。

答案 2 :(得分:0)

如果初始视图具有单独的viewController而不是“数据”视图,则可以向appDelegate添加对dataView的引用,然后执行以下操作:

if (self.curAccountManager == nil) {
    self.curAccountManager = [[accountManagerController alloc] initWithNibName:@"accountManager" bundle:[NSBundle mainBundle]];
    if (![self.curAccountManager isViewLoaded]) {
        UIView *tmpView = self.curAccountManager.view;
        tmpView = nil;
    }   



}

这将加载视图。但如果它正在进行大量加载,当用户切换到它时,它可能不会很好地响应。我建议你按照上面的建议,在数据视图中异步加载数据,这样你至少可以显示用户状态或部分结果。