1

应用程序可以使用单个 UIViewController 包含许多自定义 UIViews 吗?如果我使用单个 UIViewController 推动这个想法并隐藏并显示我想在单击按钮/菜单时显示的 UIView,我担心我的应用程序会变慢。这个想法是否可取?请给我一些想法。

这是我对我的项目所做的:

在此处输入图像描述

如您所见,我只有一个 UIViewController,我添加了 UIView,它们是 Content、MyPage、News、Schedule、Information 和 Login..

4

2 回答 2

4

一旦达到几百个,它可能会变慢,但操纵子视图是正常的。

有时制作多个视图控制器的屏幕很有用,请参见此处:

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

于 2013-09-13T10:25:23.643 回答
1

通常,重要的不是您拥有多少视图,而是您对它们做了什么。

典型的性能瓶颈:

  • 进行大量自定义绘图 (drawRect) 的视图往往是优化的良好候选者。
  • 同样,对 CALayer 或动画的复杂操作也会导致性能瓶颈,需要额外注意。

. . 虽然经验将帮助您预测可能导致性能问题的原因,但通常最好在您观察到实际问题之前进行优化 - 即基于使用分析工具进行的实际测量。

正确的结构

您应该构建您的应用程序,以便您拥有:

  • 一个根视图控制器,负责管理窗口的主布局。(滑动以显示菜单、主要内容区域、标题栏等)。. . 对于典型的应用程序,您可以只使用 UINavigationController(或类似的 UIKit 提供的类)作为根。对于更复杂的东西,你可以自己制作。这称为 UIViewController遏制,您可以谷歌了解它(或点击其他答案中的链接)。

  • 在根视图控制器中,您可以添加子视图控制器。这些子视图控制器又拥有自己的视图和层次结构。您应该通过它们的控制器与这些子视图交互,而不是直接与视图交互。. . 这将为您提供更易于维护的代码库,并且符合 MVC 模式的意图。

概括:

  • 拥有大量子视图不会对性能造成伤害。它更多地取决于子视图在做什么。
  • 您的子视图应该由控制器层次结构管理,而不仅仅是一个主视图控制器。这样您就可以减少代码维护问题。
于 2013-09-13T11:50:10.470 回答