使用Swift将字符串:String字典中的项添加到iOS上的UITableView

时间:2017-05-23 10:37:20

标签: ios swift uitableview dictionary tableviewcell

在我的Swift编写的iOS应用程序中,我有一个UITableView,每行有一个UILabel。除此之外,我还有一个[String:Int]类型的词典。

我希望UILabel行中的每个UITableView都包含字典中的String值。每行的次数与Int值所代表的次数相同。

例如,假设我有这本词典:

var dict: [String:Int] = ["apple": 2, "Banana": 3, "Orange": 7]

因此在UITableView中,我需要有2行标有Apple标签,其中3行标有Banana标签,7行标有Orange标签它们。

如何在tableView(cellForRowAt:)方法中实现这一目标?

1 个答案:

答案 0 :(得分:2)

首先,您需要一个数组作为数据源,以便为委托方法numberOfRowscellForRow返回正确的值。

要将字典转换为合适的数组,请使用类似

的内容
let dict = ["apple": 2, "Banana": 3, "Orange": 7]

var fruit = [String]()

for key in dict.keys.sorted(by: {$0.lowercased() < $1.lowercased() }) {
    let value = dict[key]!
    for _ in 0..<value {
        fruit.append(key)
    }
} // result: ["apple", "apple", "Banana", "Banana", "Banana", "Orange", "Orange", "Orange", "Orange", "Orange", "Orange", "Orange"]