我的目标是建立一个列出食品类别的表格。
在每个类别名称下面是另一个列出各种食物的表格。该子表应完全扩展。我可以显示数据,只是布局让我头疼。
因此,在父表中的每个食品类别标签下,应该有一个完全扩展的食品子表。但是,当我运行它时,子表一直被折叠。仅显示食品类别标签。如果我开始点击和滚动,我可以看到食品,但它没有完全展开。任何帮助表示赞赏!
我的布局最终如下所示 DummyConsumer.scala
我有
class ParentFoodTable: UITableViewController
并且配置了每个单元格(包含标签和另一个tableview)
class ChildFoodCell: UITableViewCell,UITableViewDataSource,UITableViewDelegate
再一次,我可以显示数据,只是布局和外观非常糟糕,因为父表的单元格没有扩展或符合子表的高度。
ParentFoodTable
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
ChildFoodCell
func setUpTable()
{
subMenuTable?.delegate = self
subMenuTable?.dataSource = self
subMenuTable?.rowHeight = UITableViewAutomaticDimension
subMenuTable?.estimatedRowHeight = 44.0
}
答案 0 :(得分:0)
有两个选项,第一个是Koen建议使用主/细节模型,第二个视图控制器显示所选类别中的项目。
第二个选项是使用“分组的表格视图”,其中组对应于您的类别,然后这些项目对应于该类别中的项目。
基本上,这看起来像是:
class Category {
let name : String
let items : [Item]
init(name:String, items:[Item]) {
self.name = name
self.items = items
}
}
class Item {
let name : String
init(name:String) {
self.name = name
}
}
class MyTableViewController : UITableViewController {
var data = [Category]()
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return data.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data[section].items.count
}
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return data[section].name
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let category = data[indexPath.section]
let item = category.items[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
cell.textLabel?.text = item.name
return cell
}
}