在筛选器选择上存储数据

时间:2018-10-24 13:01:09

标签: ios swift uitableview data-structures filter

我的疑虑是关于过滤器屏幕。

我要存储和删除用户分别从“筛选器屏幕”选择和取消选择的数据。我不确定这里要使用哪种数据类型。

从下图显示: 假设我的过滤器标题很少,例如“类别”,“颜色”,“单位”等。 在每个标题中,我都有一些值,例如在类别中,我有从类别1,类别2 ...到类别50的值。 现在,当用户选择Category2,category3之类的东西时,我可以将这些特定值存储在Array中,但是当用户随机取消选择任何类别(取消选中复选框)时,我将如何从数组中删除该特定值,因为我无法获取数组内的相关索引。(例如,用户选择了10个类别,则我的数组内有大约10个值,但它们与tableView索引中的值在索引方向上不匹配。) 协助我解决该问题。enter image description here

1 个答案:

答案 0 :(得分:1)

这是我将如何处理该问题的方法。假设我有一个数据源,其中将包含项目而无需应用任何过滤器。 (实际上,情况并非如此,您可能会通过网络调用获取数据源。)一旦用户通过选中或取消选中复选框来应用或删除过滤器,我就会使用活动的过滤器来过滤数据源。 / p>

假设这是您的商品类别。

labels

现在,这将是您的过滤器对象,用于维护所有活动的过滤器。

class Item {
    var category: Category
    var color: Color
}

enum Category {
    case one
    case two
    .
    .
    case none
}

// Similarly for color and other parameters

创建一个此类的对象,每当选中或取消选中过滤器时,就使用当前活动的过滤器过滤数据源。 (如果未选择过滤器,则忽略该过滤器,并根据您拥有的参数构造过滤器参数)。