我需要ViewController容器还是复合视图?

时间:2013-06-20 22:58:52

标签: ios

我需要为iOS实现手风琴控制。手风琴,我的意思是这样的用户界面:

enter image description here

我看到了两种基本的方法,但我不确定选择哪一种。

方法#1:创建一个ViewController容器,类似UITabBarController,除了不在底部显示标签,我绘制一个垂直的按钮堆栈,当你点击一个按钮时,相应的面板打开,显示相应的视图控制器视图。

方法#2:创建一个复合视图,直接向其添加一组视图,并根据需要显示/隐藏它们。

我如何选择?什么会让我想把子单元视为视图控制器与视图?

1 个答案:

答案 0 :(得分:1)

一般来说,如果我可以避免它,我会尝试不继承UIView,而是在UIViewController子类中执行所有操作。无论如何通常都需要控制器(模型/视图粘合代码,用户交互,委托内容,通知处理等),因此如果不需要自定义绘图,通常可以不使用UIView子类。

在你的情况下,我可以设想一个代表列表条目的可重用UIViewController子类。它有以下责任:

  • 创建两个备用视图层次结构(折叠/按钮,展开/面板)
  • 在视图层次结构之间切换以响应用户交互(使用/不使用动画)

另一个代表整个列表的UIViewController子类。它有以下责任:

  • 覆盖UIViewController中的相应方法,使其成为容器VC
  • 根据内部模型添加/删除子VC
  • 可能会调整容器视图以响应其子VC中的崩溃/展开事件