在我的斯威夫特写的iOS应用程序中,我有一个UITableView,每一行都有一个UILabel。除此之外,我还有一本[String:Int]类型的字典。
我希望UITableView行中的每个UITableView都包含字典中的字符串值。每一行的次数将与Int值表示的次数相同。
例如,假设我有一本字典:
var dict: [String:Int] = ["apple": 2, "Banana": 3, "Orange": 7]因此,在UITableView中,我需要有2行有Apple标签,3行有Banana标签,7行有Orange标签。
如何在tableView(cellForRowAt:)方法中实现这一点?
发布于 2017-05-23 10:48:10
首先,您需要一个数组作为数据源,以返回委托方法numberOfRows和cellForRow的适当值。
若要将字典转换为适当的数组,请使用以下内容
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"]https://stackoverflow.com/questions/44132433
复制相似问题