如何使用字典向tableview中的特定部分添加行?

时间:2016-07-22 07:37:23

标签: ios swift uitableview dictionary

我有一本字典并从我的数据库导入信息。我需要将它专门放在我的表视图的右边部分。如果您需要更多详细信息或代码我将提供所有信息。

字典输出["March 27": ["do the dishes", "take out the trash"], "March 29": ["Walk the dog", "Water the plants"], "March 28": ["Clean the house"]]

var date = ["March 27", "March 28", "March 29"]

 func numberOfSections(in tableView: UITableView) -> Int {
    return date.count
}

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return date[section]
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = table.dequeueReusableCell(withIdentifier: "cell") as! Chores
    //Having trouble on what to do here
    return cell
}

1 个答案:

答案 0 :(得分:1)

你怎么做,我认为这是自我解释的:

var output = ["March 27": ["do the dishes", "take out the trash"], "March 29": ["Walk the dog", "Water the plants"], "March 28": ["Clean the house"]]
var date = Array(output.keys)

func numberOfSections(in tableView: UITableView) -> Int {
    return date.count
}

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return date[section]
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return output[date[section]]?.count ?? 0
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = table.dequeueReusableCell(withIdentifier: "cell") as! Chores
    var value = output[date[indexPath.section]]?[indexPath.row] ?? ""
    cell.textLabel.text = value
    return cell
}

//按行数编辑:

output[date[section]]?.count

它完全是这样的,这主要是给你选项,但在这个例子中我会忽略它:

let keyForSection = date[section]
let arrayOfStringsForKey = output[keyForSection]
let numberOfRows = arrayOfStringsForKey.count

你做类似的东西来获得实际值,但不是计算你传递你想要值的行的索引

let value = arrayOfStringsForKey[rowNumber]