一个视图控制器可以处理多少个子视图和表格视图?

3
我有一个应用程序,其中一个视图控制器的主要子视图是UIScrollView。用户可以在不同的UIView之间左右滚动。每个视图都将有自己的UITableView
我的问题仅是一个视图控制器能处理多少个视图和表格视图,才不会变得卡顿和缓慢? iPhone 4上是否可以有10个视图和10个表格视图,并且仍然运行流畅,还是我需要另想办法?如果需要,我该如何改进?
编辑: 我一直在考虑使用UIPageViewController,但我想要像Yahoo天气一样的视差滚动效果。那么Yahoo天气是如何处理这么多视图的呢?

1
一个视图控制器可以处理一个视图。你在问性能问题,那为什么不建立一个小型原型并尝试一下呢?复杂的解决方案是移除滚动屏幕外的视图并回收它们。 - Krumelur
我认为只有三个视图会很好。左、中、右。当你滚动时,你会改变这些控制器。 - Misha Vyrko
考虑使用“无限滚动视图”或UIPageViewController - Fogmeister
1
如果您不需要支持iOS 6以下的版本,建议您查看UIPageViewController类,并使用转换样式“UIPageViewControllerTransitionStyleScroll”。 - Sascha
1个回答

1
你可以拥有大量的视图和子视图,它们都由同一个控制器处理。除非当前正在显示,否则不会绘制视图。
话虽如此,如果您开始注意到性能问题(例如,如果不再立即需要表格,则删除其内存),则肯定可以利用一些回收解决方案来加快速度。
您开始出现复杂情况的主要原因是计算填充数据。如果您有10个表视图,所有数据源和委托方法可能会变慢。您可以使用容器视图封装视图逻辑。此外,正如评论中提到的那样,UIPageViewController 可能是一个好的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接