呈现不同的局部视图iOS Swift

时间:2015-08-18 08:12:50

标签: ios swift uiview uiviewcontroller

我正在开发一个应用程序,其中屏幕分为4个部分,一个带有公司徽标等的顶栏,一个内容部分,一个底部栏,里面有一些按钮,然后在底部添加横幅。

第一次运行将要求用户回答一系列问题。这些将在内容部分中介绍。当每个问题完成后,用户点击底栏中的下一个按钮,下一个问题将从右向左滚动。

我的问题是实现这一目标的最佳方法是什么?我考虑过使用一系列UIViews并为它们设置动画,但是因为会有20或30个问题(所有不同的类型,一些有文本答案,所以有多种选择,有些有日期)这将很难在故事板中。

我是否应该为每个问题使用视图控制器?如果是这样,我怎么才能只显示内容部分,这样当它在初始视图控制器的顶部和底部滚动时仍然可见,它们的按钮等仍然有效?

是否有实现这一目标的最佳实践方法?

1 个答案:

答案 0 :(得分:1)

  1. 查看结构:
  2. 您可以在内容部分中使用 container view ,您可以在其中嵌入视图控制器层次结构,该层次结构将显示问题答案。 但是,您希望控制来自此视图控制器的问题流,因为工具栏(底栏)包含指示流的控件(下一个按钮)。 因此,从容器视图中添加嵌入segue的标识符,并在'prepreForSegue'方法中,获取对嵌入式视图控制器的控制。

    1. 导航:
    2. 选项1:您可以在容器视图中嵌入 UIPageViewController ,并将所有问题屏幕设置为页面视图控制器的页面。

      选项2:您可以嵌入 UINavigationController 并将问题屏幕推入导航堆栈。

      1. 问题答案屏幕:
      2. 选项1:您可以创建 UITableViewController ,并为每种类型的问题和每种类型的答案创建一个自定义单元格。您可以在表格视图中包含2个部分。第1节将有问题单元格,第二部分将有答案单元格。这允许您具有任何类型的问答UI组合。通过创建TextView单元格和问题的图像单元格,您可以对文本和图像有疑问。类似地,您可以在答案部分中为文本答案设置单行,其中多选问题中的所有选项都是单独的行,并且选中答案的“选中标记”附件。

        选项2:您可以为每种类型的问题创建一个单独的视图控制器。根据问题,创建相关的视图控制器并将add i传递给视图层次结构(取决于所选的导航选项)。

        在任何情况下,您都必须确保您设计的数据结构必须非常强大,并且您可以自定义导航视图并由问题答案数据源驱动。