使用 Swift 将 String:Int 字典中的项目添加到 iOS 上的 UITableView
Add items from a String:Int dictionary to UITableView on iOS using Swift
在我 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:)
方法中完成该操作?
首先,您需要一个数组作为数据源,以 return 委托方法 numberOfRows
和 cellForRow
.
的正确值
要将字典转换为合适的数组,请使用类似这样的东西
let dict = ["apple": 2, "Banana": 3, "Orange": 7]
var fruit = [String]()
for key in dict.keys.sorted(by: {[=10=].lowercased() < .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"]
在我 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:)
方法中完成该操作?
首先,您需要一个数组作为数据源,以 return 委托方法 numberOfRows
和 cellForRow
.
要将字典转换为合适的数组,请使用类似这样的东西
let dict = ["apple": 2, "Banana": 3, "Orange": 7]
var fruit = [String]()
for key in dict.keys.sorted(by: {[=10=].lowercased() < .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"]