gpt4 book ai didi

ios - 最佳实践 : UIViewController or UIView

转载 作者:可可西里 更新时间:2023-11-01 05:22:00 25 4
gpt4 key购买 nike

我打算在 IOS 中设计一个组件,其中我们将有 Table view 和 Grid View;意味着用户可以在表格或网格中查看他的数据。所以我正在做的是我添加了一个 UIViewController 并添加了两个 subview Controller ,一个用于表,另一个用于 Collection View 。我只使用 UIViewController 处理所有事情。这意味着当用户想要使用我的组件时,他必须仅添加为 subview Controller 。我的问题是“像我正在做的那样使用 UIViewController 是最佳实践还是我应该将所有内容都转换为 UIView 因为 UIView 重量轻。”我将只在我的组件中编写表示逻辑。我们将使用委托(delegate)从外部获取数据。如果我应该使用 UIView,那么我应该什么时候使用 UIViewController?

谢谢

最佳答案

您目前的做法是正确的。

UIViews 应该只做一件事:在被要求时绘制 View 。

UIViewControllers 更复杂。他们负责使用完成工作所需的任何数据设置 View ,在需要时将多个 View (或 View Controller )组合在一起,响应来自 View 组件或一般设备的事件,并与其余部分进行通信代码/系统。

因为您的代码想要显示两种不同类型的信息,所以它比普通的 UIView 样式更适合 UIViewController。

正如您所指出的,Apple 本身有许多 UIView 子类的示例,这些子类具有委托(delegate)并执行复杂的操作。但是,如果您正在编写一个新组件并且它很复杂(就像您的组件一样),我强烈建议您使用 UIViewController 方法。

历史记录:Apple 曾经建议 UIViewControllers 应该只显示/合成 UIViews 而不是其他 UIViewControllers(尽管令人困惑的是,他们并不总是遵循自己的建议! ).这将与他们制作一些非常复杂的 UIView 子类相一致。然而,他们不久前改变了这种立场,并添加了对 UIViewControllers 的支持,以便在其中合成其他 UIViewControllers 的 View 。 如果 Apple 的立场一直像现在这样,你可能会发现他们的一些 UIView 子类是作为 UIViewControllers 实现的!

作为实验,尝试以两种方式实现您的组件可能会很有教育意义。我预测您会发现 UIView 方法更加笨拙,因为您必须手动重新连接一些使用 UIViewController 方法“免费”获得的“线路”。

关于ios - 最佳实践 : UIViewController or UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19583330/

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