tableView Swift中的乘以值

时间:2017-08-03 08:28:03

标签: ios swift uitableview dictionary

我想根据Dictionary中的行数动态生成单元格。在视图加载时,字典为空并在路上绑定 字典很好地绑定了三个键值,但是当我想根据字典值创建单元格时,键总是在字典中创建三行和最后一项。

我无法弄明白为什么。

这是我的代码:

var peripherals = [String:String]()

   override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    print(peripherals.count)
    return peripherals.count
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath)

    for (peripheralDeviceUUID,peripheralDeviceName) in peripherals {
         cell.textLabel?.text = "\(indexPath) \(peripheralDeviceName) : \(peripheralDeviceUUID)"
    }


    return cell
}

override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return "Section \(section)"
}

1 个答案:

答案 0 :(得分:2)

从字典中生成键和值的数组。

    let dict = ["a": "first", "b": "second", "c": "third"]
    let arrayKeys = Array(dict.keys)
    let arrayValues = Array(dict.values)

然后在cellForRow中使用这些数组:

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
          let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath)    
          cell.textLabel?.text = "\(indexPath.row) \(arrayValues[indexPath.row]) : \(arrayKeys[indexPath.row])"
          return cell   
    }