gpt4 book ai didi

design-patterns - UIVIew 或 UIViewController 中的复杂 View 设置? (设计决策)

转载 作者:可可西里 更新时间:2023-11-01 04:40:37 24 4
gpt4 key购买 nike

目前,我以编程方式设置了大部分 UI。有两种方法可以安排属于屏幕的 View (除了使用 nib 之外):

  • 在 View Controller 中,管理所有 View (它是一个 View Controller !)
  • 创建一个自定义的 UIView 子类,然后将其连接到 Controller 中

我知道两者都可以,但在哪些情况下您会选择哪种解决方案?

此外,对于第一个变体,可以选择在 viewDidLoad 中进行设置并将 View 添加到 self.view,或者构建容器 View 并在 loadView 中添加所有 View 。此处的任何好的建议也将不胜感激。

当您将完整 View 设置为 Controller 的 View 时,第二个变体接近于使用 Nib 。

不打算在这里开始一场宗教 war ,而是为这两种方法寻找论据。

最佳答案

我能想到几个标准,我会用它们来选择一个选项。

如果 View 集是或可能是在许多屏幕上显示的可重用组件,我会赞成创建 UIView 子类。

如果 View Controller 需要直接访问多个 View ,我会在 Controller 中构建它们。我尝试使自定义 UIView 类成为不透明容器,因此它们的 Controller 只需要与父 View 交互,而不是深入了解其 subview 。

如果 View 集不能提供处理单个概念的 API,例如,如果 View 层次结构仅用于正确设置 View 的 z-index,而这些 View 处理显示不相关的数据,那么我将再次创建他们在 Controller 中。 UIView 子类应负责仅显示一组连贯的数据,或以一致的方式管理一组 subview 。

如果 View 需要相对于其层次结构之外的 View 进行定位,我会再次赞成在 Controller 中定义它们。

关于design-patterns - UIVIew 或 UIViewController 中的复杂 View 设置? (设计决策),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4629461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com