我的疑虑是关于过滤器屏幕。
我要存储和删除用户分别从“筛选器屏幕”选择和取消选择的数据。我不确定这里要使用哪种数据类型。
从下图显示: 假设我的过滤器标题很少,例如“类别”,“颜色”,“单位”等。 在每个标题中,我都有一些值,例如在类别中,我有从类别1,类别2 ...到类别50的值。 现在,当用户选择Category2,category3之类的东西时,我可以将这些特定值存储在Array中,但是当用户随机取消选择任何类别(取消选中复选框)时,我将如何从数组中删除该特定值,因为我无法获取数组内的相关索引。(例如,用户选择了10个类别,则我的数组内有大约10个值,但它们与tableView索引中的值在索引方向上不匹配。) 协助我解决该问题。
答案 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
创建一个此类的对象,每当选中或取消选中过滤器时,就使用当前活动的过滤器过滤数据源。 (如果未选择过滤器,则忽略该过滤器,并根据您拥有的参数构造过滤器参数)。