2

我正在开发一个 ipad 项目,它的 UITabBarController(它也是根)有 5 个选项卡。

第二个选项卡是一个表格视图,其中有非常丰富的 UI 元素。

问题是每次我启动应用程序并单击第二个选项卡时,我都会被阻止 0.3 秒来显示视图控制器。但是,第一次进入这个选项卡后,我只需要 0.03 就可以再次进入这个选项卡。

所以我觉得ViewDidLoad成本太高了,因为我做的很多addSubView还是reloadData有的。所以我添加

[libraryVC viewDidLoad];
[libraryVC viewWillAppear:YES];
[libraryVC viewDidAppear:YES];

application:didFinishLaunchingWithOptions,我认为如果我在用户进入第二个选项卡之前执行此视图加载内容,则不会有任何阻塞。

但是在我测试了这种方法之后,我发现成本并没有降低。所以我猜在第一次显示这个视图控制器时可能会在视图渲染中使用时间成本。当viewcontroller的view之前已经渲染过,那么接下来的show会很快。但我不知道如何解决这个问题。

我认为当视图控制器的视图非常复杂时,这个问题很常见,那么有没有人知道解决这个问题的方法?或者有没有人可以详细描述阻塞发生的原因?

谢谢你的帮助!

4

1 回答 1

0

也许多线程时间密集的方法/调用是您正在寻找的解决方案。如果您在 Google 上搜索“ios grand central dispatch”,将会有一些很棒的资源可用。Apple 的 Grand Central Dispatch 参考资料是他们拥有的更好的文档之一。

于 2013-05-04T04:25:12.717 回答