应该在UIView或UIViewController中编程构建视图的代码



我正在构建一个具有以编程方式构建的视图的应用程序。也就是说,我正在从数据库中获取数据,该数据库包含视图中按钮的数量、大小和位置等信息。在某些时候,会有代码使用这些数据来实例化新的子视图并对它们进行设置。我的问题是,这些代码应该放在哪里?视图,viewController,或其他地方。在我看来,这是一个关于典型MVC原则的灰色地带。视图应该接受数据,然后知道如何使用这些数据来绘制自己吗?或者,viewController负责构建所有不同的子视图,然后简单地将它们添加到视图中。

想法吗?谢谢。

我同意这是一个灰色地带。就我个人而言,我做出这样的决定是基于需要操纵的数据还是数据的显示。例如,显示日期的视图控制器可能需要处理各种日期(即,以DMY结构表示的数据与以参考时间的秒数表示的日期)为适合视图的格式,而视图本身可能只能够接收一种特定格式(即DMY)并负责显示该格式。这是我倾向于在两者之间画的一条线——显示数据(视图)与解释数据(控制器)。

在您重新配置视图的示例中,我可能会将大部分逻辑放入控制器,因为它涉及解释数据。我将设计视图来接受配置细节,例如显示多少项和使用哪种布局格式(想想UITableViewCell),但我将设计控制器来解释数据,以决定有多少项和在视图内的各个字段中放置什么(如UITableViewController)。

相关内容

最新更新