sha*_*ria 9 dictionary uitableview ios swift
我有一个3类,我用作一个部分.在该部分中,我必须填充字典数组中的数据.这是我的代码: -
var sections = [Category A, Category B, Category C]
var itemsA = [["Item": "item A","ItemId" : "1"],["Item": "item B","ItemId" : "2"],["Item": "item C","ItemId" : "3"]]
var itemsB = [["Item": "item A","ItemId" : "1"],["Item": "item B","ItemId" : "2"],["Item": "item C","ItemId" : "3"]]
var itemsC = [["Item": "item A","ItemId" : "1"],["Item": "item B","ItemId" : "2"],["Item": "item C","ItemId" : "3"]]
func numberOfSections(in tableView: UITableView) -> Int {
return self.sections.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return self.sections[section]
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return ??
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "StoreCell") as! UITableViewCell
????
????
return cell
}
Run Code Online (Sandbox Code Playgroud)
我需要将items数组填充到表类别中.如果有人可以回答.谢谢!
vad*_*ian 24
使用自定义结构
struct Category {
let name : String
var items : [[String:Any]]
}
Run Code Online (Sandbox Code Playgroud)
var sections = [Category]()
let itemsA = [["Item": "item A","ItemId" : "1"],["Item": "item B","ItemId" : "2"],["Item": "item C","ItemId" : "3"]]
let itemsB = [["Item": "item A","ItemId" : "1"],["Item": "item B","ItemId" : "2"],["Item": "item C","ItemId" : "3"]]
let itemsC = [["Item": "item A","ItemId" : "1"],["Item": "item B","ItemId" : "2"],["Item": "item C","ItemId" : "3"]]
sections = [Category(name:"A", items:itemsA),
Category(name:"B", items:itemsB),
Category(name:"C", items:itemsC)]
Run Code Online (Sandbox Code Playgroud)
func numberOfSections(in tableView: UITableView) -> Int {
return self.sections.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return self.sections[section].name
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let items = self.sections[section].items
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "StoreCell") as! UITableViewCell
let items = self.sections[indexPath.section].items
let item = items[indexPath.row]
print(item["ItemId"] as? String)
return cell
}
Run Code Online (Sandbox Code Playgroud)
如果您还为字典使用自定义结构,则仍可以改进代码.
Nir*_*v D 15
如果类别A的itemA数组,类别B的itemB数组等,那么您可以通过numberOfRowsInSection这种方式返回数组计数.
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch (section) {
case 0:
return itemsA.count
case 1:
return itemsB.count
default:
return itemsC.count
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "StoreCell") as! UITableViewCell
switch (indexPath.section) {
case 0:
//Access itemsA[indexPath.row]
case 1:
//Access itemsB[indexPath.row]
default:
//Access itemsC[indexPath.row]
}
return cell
}
Run Code Online (Sandbox Code Playgroud)
注意:如果您创建单个Array结构或自定义类,它将减少使用单个数组的所有数组.
| 归档时间: |
|
| 查看次数: |
24642 次 |
| 最近记录: |