只有在满足某些条件时才添加单元格
问题描述:
所以我有一个结构数组,我从我的json添加数据。同一阵列中有不同类型的数据。只有在满足某些条件时才添加单元格
struct PersonData {
let name: String
let age: String
let sex : String
}
我想要做的是实现一个pickerView,它将根据用户选择的内容重新加载表视图。可以说我有2个选择器视图,用户可以选择性别和年龄。
因此,如果他选择了所有17岁的男性,我只想在桌面视图上显示。
我已经可以得到阵列上的计数,但我不能在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
}
我知道我不能回零,因为他期望一个UITableViewCell,但是如果满足某些条件,它可能只增加indexPath?
或者我需要添加单元格并将其删除后?这听起来不对。
答
我将有两个数据数组:
allDataArray - 所有元素
filteredDataArray - 元素也应该符合您的过滤器
如果使用filteredArray作为一个DataSource你不必将该逻辑放入cellForRow方法中。
相反,使用机械臂委托方法来过滤allDataArray,并把它放在filteredDataArray。
该死的我怎么错过了?这种简单的解决方案。我不知道我怎么会错过使用一个数组作为数据源。非常感谢Lopes! – Adrian
没问题;)良好的编码 – LopesFigueiredo