gpt4 book ai didi

ios - Swift UITableView(无部分)过滤到带部分的 TableView

转载 作者:行者123 更新时间:2023-11-28 05:52:04 25 4
gpt4 key购买 nike

我在表格 View 中显示了自定义对象 [Species] 的列表,该列表按字母顺序排序。表格有一个没有标题的部分,它是一个连续的列表。

我想要实现的是,当用户选择“按国家/地区”对数据排序的选项时,执行以下操作:

  • 对数组进行排序以找出我需要多少个部分 - “Species.country”
  • 创建带有国家/地区标题的部分
  • 按字母顺序对国家(部分)进行排序
  • 重新加载 TableView 以显示部分
  • 删除有关反向操作的部分(对整个列表进行 A-Z 排序)

是否可以在筛选/排序时动态创建部分?你能给我指出正确的方向吗?非常感谢A.

func numberOfSections(in tableView: UITableView) -> Int {
return 1
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 120
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.genusArr.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: CustomMenuCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomMenuCell

//genusArr is type of [Species]
let genus = self.genusArr[indexPath.row]
cell.populate(with: genus)

return cell
}

最佳答案

这一切都在您的数据模型中。您总是有带行的部分。但是你只有一个部分。修改您的数据模型和数据源方法以始终支持多个部分。只是有时候这个数据模型只有一个部分。

将您的数据模型更新为字典数组,其中字典包含标题和数组。顶级数组是您的部分(有时可能只有一个)。内部数组(在每个字典中)是每个部分的行。或者用标题和数组定义一个 struct,而不是使用字典。

有了这个,并且您的 TableView 数据源和委托(delegate)方法编写为始终处理多个部分,当您碰巧只有一个部分的数据时,您的表也可以正常工作。

现在只需根据您希望如何组织显示数据来根据需要填充字典数组即可。

关于ios - Swift UITableView(无部分)过滤到带部分的 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52581285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com