【问题标题】:Storing data on Filter Selections在过滤器选择上存储数据
【发布时间】:2018-10-24 13:01:08
【问题描述】:

我的疑问是关于过滤屏幕。

我想分别存储和删除用户从过滤屏幕中选择和取消选择的数据。我不确定在这里使用什么数据类型。

如下图所示: 假设我有几个过滤器标题,如“类别”、“颜色”、“单位”等。 & 在每个标题中,我都有一些值,例如在类别中,我有从类别 1、类别 2 到类别 50 的值。 现在,当用户选择类别 2、类别 3 之类的任何内容时。我可以将这些特定值存储在数组中,但是当用户随机取消选择任何类别(取消选中复选框)时,我将如何从数组中删除该特定值,因为我不能在数组中获取相关索引。(意味着像用户选择了一些 10 个类别,然后我的数组中有一些 10 个值,但它们与 tableView 索引中的值不匹配。) 帮助我解决这个问题..

【问题讨论】:

    标签: ios swift uitableview data-structures filter


    【解决方案1】:

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

    假设这是你的物品类别。

    class Item {
        var category: Category
        var color: Color
    }
    
    enum Category {
        case one
        case two
        .
        .
        case none
    }
    
    // Similarly for color and other parameters
    

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

    class FilterParameters {
        var category: [Category]? = nil
        var color: [Color]? = nil
    }
    

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

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 1970-01-01
      • 2016-04-09
      • 2016-10-10
      • 2016-11-09
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多