我经历了很多类似的问题,但仍然没有清楚地理解这一点。
在更好的设计方面 - 什么是正确的方法 - 在视图控制器本身中创建所有UIButtons,UILabels等,然后将它们添加为子视图,或者我应该创建一个自定义视图(@interface MyView:UIView)必需的按钮/标签等,然后将该视图分配给View控制器的视图属性?我没有使用界面构建器。
创建这样的自定义视图是否有任何真正的需要/优势,或者在视图控制器中添加所有内容应该是好的/好主意?对不起,我是iOS应用程序开发的新手: - )
如果有人能向我解释,那将非常有帮助。
答案 0 :(得分:0)
子视图的一些优点是:
子视图的一些缺点是:
总的来说,没有一个最好的答案,这完全取决于您的设置以及您希望如何保持项目的整洁。
答案 1 :(得分:0)
我的回答:答案在于这两个相反的方面:
要了解我正在谈论的内容:可以将UITableView
行为直接实现到只有UIViewController
的{{1}},并处理所有indexPath计算(取决于关于滚动的数量),视图回收等...在这个非常viewController。
但是,由于列表是可视化显示信息的常用方法,所有这些“回收视图”,“为当前显示的单元格设置内容”已移至自定义视图类:UIScrollView
,委托和数据源模式已经被用来使这个类行为很容易定制。
创建抽象有其优点和缺点。 我试着逐步做事:
答案 2 :(得分:0)
视图控制器是一种很好的方法,可以从严格意义上分离视图必须执行的事物(处理输入,渲染输出),从更大的层次结构,操作和信息路由它周围的视图,视图控制器协调。
取得适当的平衡取决于许多局部因素。包含标签和图像(如单元格)的视图当然可以“拥有”其子视图,并像控制器单元一样出现在控制器中。但请注意,在这种情况下,子视图也支持“单元”单元的输入/呈现。
从这个意义上讲,如果你有一个大画布,其中包含一组实际控件,这些控件位于该画布的“顶部”但不一定是“拥有”它,那么视图控制器可能会想要创建并将这些控件附加到查看层次结构。