gpt4 book ai didi

swift - 仅在满足特定条件时添加单元格

转载 作者:行者123 更新时间:2023-11-28 16:02:49 26 4
gpt4 key购买 nike

所以我有一个结构数组,我从我的 json 添加数据。同一个数组中有不同类型的数据。

struct PersonData {
let name: String
let age: String
let sex : String
}

我想做的是实现一个 pickerView,它将根据用户的选择重新加载表格 View 。假设我有 2 个选择器 View ,用户可以在其中选择性别和年龄。

因此,如果他选择所有 17 岁的男性,我只想在表格 View 中显示。

我已经可以得到数组的计数,但是我不能在 UITableViewCell 方法上返回 nil

我想做这样的事情:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "reuseCell", for: indexPath) as! CellTeatroTableViewCell

if(option == 0) //All persons. Default option
{
cell.name.text = dataArray[indexPath.row].name
return cell

}
else
{
if(dataArray[indexPath.row].age == agePickerOption || dataArray[indexPath.row].sex == sexPickerOption )
{
cell.name.text = dataArray[indexPath.row].name
return cell
}
}

return nil

}

我知道我不能返回 nil,因为他期待一个 UITableViewCell,但如果满足某些条件,它可能只增加 indexPath?

或者我需要添加单元格并在之后立即删除它?这听起来不对。

最佳答案

我会有两个数据数组:

allDataArray - 所有元素

filteredDataArray - 符合过滤器的元素

如果您使用 filteredArray 作为数据源,则不必将该逻辑放在 cellForRow 方法中。

相反,使用选择器委托(delegate)方法来过滤您的 allDataArray 并将其放在 filteredDataArray 上。

关于swift - 仅在满足特定条件时添加单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40746042/

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