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



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

我希望UITableView行中的每个UILabel都包含字典中的字符串值。每一行的次数将与Int值表示的次数一样多。

例如,假设我有这个字典:

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

所以在UITableView我需要有 2 行带有Apple标签,3 行带有 Banana 标签,7 行带有Orange标签。

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

首先,

您需要一个数组作为数据源来返回委托方法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"]

最新更新