创建嵌套表视图或单独的页面?
Posted
技术标签:
【中文标题】创建嵌套表视图或单独的页面?【英文标题】:Create nested table view or separate page? 【发布时间】:2015-04-28 19:17:01 【问题描述】:我正在尝试为我的 ios 应用创建一个选项页面。我有一系列这样的类别:
var options = [
"Location",
"Calculation Method",
"Juristic Method",
"Manual Adjustment",
"Daylight Saving Time"
]
然后我将它们加载到我的视图控制器中,如下所示:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return options.count
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = UITableViewCell(style: .Default, reuseIdentifier: "Cell")
cell.textLabel?.text = options[indexPath.row]
return cell
这给了我一个完美的单一表格视图!现在我正在尝试处理每一行的点击以显示该类别的选项列表。例如,Location
将有一个开关来启用 GPS 或允许他们选择他们的位置下拉菜单或地图。 Calculation Method
将显示复选标记的表格视图。 Daylight Saving Time
将打开一个带有开关的单行。
我的问题是这一切的最佳方法是什么?我应该创建一个数组字典来保存我的选项并重用表格,还是应该为每个选项类别创建一个单独的视图?我在这方面发现了相互冲突或过时的教程,而且我在转换来自 Objective-C 的示例时也遇到了麻烦。任何帮助或指导将不胜感激!
【问题讨论】:
【参考方案1】:我建议为每个选项类别创建单独的视图。从上面的示例中,您最终会得到 5 个视图控制器:位置、计算方法、法律方法、手动调整和夏令时。然后对于您的计算方法,因为它是复选标记的表格视图,所以我可能有一个数组,将每个选项存储在 CalculationMethodsViewController 中。其他人也一样。如果他们需要显示其他数据,请将其放在新的视图控制器中 - 而不是在您原来的视图控制器中。
【讨论】:
【参考方案2】:对于您的***类别,我建议使用 tableview 的各个部分来分隔事物。然后一个部分中的每一行将对应于详细的选项。
为此,您可以有一个“类别”数组来保持部分的顺序。这将匹配您在问题中定义的 options
数组。除此之外,我会放置一个子类别选项的字典。对于位置,它看起来像这样:
var options = [
"Location" : ["location-enable-gps", "location-choose-list", "location-choose-map"],
"Calculation Method": ...,
"..."
]
在上面的字典中,Location 的数组值是我定义的常量。这是因为您将彻底改变每个细胞的行为。 Enable GPS can just be a checkbox, Choosing from a list may be better to drilldown/modal (and when selected display selected location), choosing from map may also lend itself to a modal design ("Modal" is when a view controller pops up然后在一个动作后关闭)。
如果这一切都有意义,请告诉我,看起来您的选择会非常多样化,所以很遗憾,我认为没有一种方法(向下钻取,集合视图)最有效。话虽如此,这完全取决于您希望用户如何体验您的应用程序。
【讨论】:
以上是关于创建嵌套表视图或单独的页面?的主要内容,如果未能解决你的问题,请参考以下文章