呈现不同的局部视图 iOS Swift
Presenting different partial views iOS Swift
我正在开发一个应用程序,其中屏幕分为 4 个部分,一个带有公司徽标等的顶部栏,一个内容部分,一个带有一些按钮的底部栏,然后在底部添加横幅。
第一个运行将要求用户回答一系列问题。这些将在内容部分中介绍。当每个问题完成后,用户点击底部栏中的下一个按钮,下一个问题将从右向左滚动。
我的问题是实现此目标的最佳方法是什么?我曾考虑过使用一系列 UIViews 并为它们设置动画,但是由于会有 20 或 30 个问题(所有不同类型,一些带有文本答案,所以有多项选择,一些带有日期)在故事板。
我应该为每个问题使用视图控制器吗?如果是这样,我怎样才能只显示内容部分,以便当它在初始视图控制器的顶部和底部滚动时仍然可见并且它们的按钮等......仍然有效?
是否有实现此目的的最佳实践方法?
- 查看结构:
您可以为内容部分设置 container view,您可以在其中嵌入显示问题答案的视图控制器层次结构。
但是,您希望从此视图控制器控制问题流,因为工具栏(底部栏)包含指示流程的控件(下一步按钮)。
因此,从容器视图中为嵌入 segue 添加标识符,并在 'prepreForSegue' 方法中获取嵌入式视图控制器的控制权。
- 导航:
选项 1: 您可以在容器视图中嵌入 UIPageViewController 并将所有问题屏幕显示为页面页面视图控制器。
选项 2: 您可以嵌入 UINavigationController 并将问题屏幕推送到导航堆栈中。
- 问题回答屏幕:
选项 1: 您可以创建一个 UITableViewController 并为每种类型的问题和每个问题创建一个自定义单元格类型的答案。 table 视图中可以有 2 个部分。第 1 部分将有问题单元格,第二部分将有答案单元格。这允许你有任何类型的问题和答案的组合UI。您可以通过为问题创建一个 TextView 单元格和一个图像单元格来对文本和图像提出问题。类似地,您可以在答案部分中有一行用于文本答案,而多项选择题中的所有选项都可以作为单独的行,并带有用于所选答案的 'checkmark' 附件。
选项 2:您可以为每种类型的问题创建一个单独的视图控制器。根据问题,创建相关的视图控制器并将 add i 传递到视图层次结构(取决于选择的导航选项)。
在任何情况下,您都必须确保您设计的数据结构必须非常强大,并且您的视图导航是可自定义的并由问题答案数据源驱动。
我正在开发一个应用程序,其中屏幕分为 4 个部分,一个带有公司徽标等的顶部栏,一个内容部分,一个带有一些按钮的底部栏,然后在底部添加横幅。
第一个运行将要求用户回答一系列问题。这些将在内容部分中介绍。当每个问题完成后,用户点击底部栏中的下一个按钮,下一个问题将从右向左滚动。
我的问题是实现此目标的最佳方法是什么?我曾考虑过使用一系列 UIViews 并为它们设置动画,但是由于会有 20 或 30 个问题(所有不同类型,一些带有文本答案,所以有多项选择,一些带有日期)在故事板。
我应该为每个问题使用视图控制器吗?如果是这样,我怎样才能只显示内容部分,以便当它在初始视图控制器的顶部和底部滚动时仍然可见并且它们的按钮等......仍然有效?
是否有实现此目的的最佳实践方法?
- 查看结构:
您可以为内容部分设置 container view,您可以在其中嵌入显示问题答案的视图控制器层次结构。 但是,您希望从此视图控制器控制问题流,因为工具栏(底部栏)包含指示流程的控件(下一步按钮)。 因此,从容器视图中为嵌入 segue 添加标识符,并在 'prepreForSegue' 方法中获取嵌入式视图控制器的控制权。
- 导航:
选项 1: 您可以在容器视图中嵌入 UIPageViewController 并将所有问题屏幕显示为页面页面视图控制器。
选项 2: 您可以嵌入 UINavigationController 并将问题屏幕推送到导航堆栈中。
- 问题回答屏幕:
选项 1: 您可以创建一个 UITableViewController 并为每种类型的问题和每个问题创建一个自定义单元格类型的答案。 table 视图中可以有 2 个部分。第 1 部分将有问题单元格,第二部分将有答案单元格。这允许你有任何类型的问题和答案的组合UI。您可以通过为问题创建一个 TextView 单元格和一个图像单元格来对文本和图像提出问题。类似地,您可以在答案部分中有一行用于文本答案,而多项选择题中的所有选项都可以作为单独的行,并带有用于所选答案的 'checkmark' 附件。
选项 2:您可以为每种类型的问题创建一个单独的视图控制器。根据问题,创建相关的视图控制器并将 add i 传递到视图层次结构(取决于选择的导航选项)。
在任何情况下,您都必须确保您设计的数据结构必须非常强大,并且您的视图导航是可自定义的并由问题答案数据源驱动。