iOS 选择要在表格中显示的特定条目

Posted

技术标签:

【中文标题】iOS 选择要在表格中显示的特定条目【英文标题】:iOS Select specific entries to display in table 【发布时间】:2014-06-15 12:25:53 【问题描述】:

我有一个数组,其中包含多个字典。

格式如下:- 大批 - 指数 - DOW = 工作日 - 指数 - DOW = 周末 - 指数 - DOW = 工作日

我想用仅包含 DOW = Weekday 的那些字典中的数据填充表。

枚举这个的最快方法是什么?

请注意,数据将通过过滤器进行更改,然后重新加载表格。

【问题讨论】:

抱歉,我忘记了格式被删除了。但感谢您的主要回答。效果很好。 【参考方案1】:

您可以使用NSPredicate 过滤您的数组,如下所示:

NSArray *data = @[
     @@"Dow":@"Weekday", @"One":@"Two"    // Item 0
,    @@"Dow":@"Weekend", @"Three":@"Four" // Item 1
,    @@"Dow":@"Weekday", @"Five":@"Six"   // Item 2
];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(Dow=='Weekday')"];
NSArray *res = [data filteredArrayUsingPredicate:pred];

上面的代码将保留NSArrays 项目0 和2,并删除项目1,因为它不包含将@"Dow" 设置为@"Weekday" 的条目。

上面的data 变量代表您示例中的预过滤数据。

【讨论】:

【参考方案2】:

我建议你阅读 Apple UITableViewDataSource 协议指南 here 或者 this 教程。

基本上你会想要 -

    覆盖 numberOfSectionsInTableView: 并返回表格中的部分数(如果不相关,则返回 0)。 Ovveride tableView:numberOfRowsInSection: 在这里您可以在您的字典中“应用”所需的过滤器并返回您实际想要显示的正确行数。

下次您更新过滤器并再次调用reloadTable 时,上述步骤将根据新过滤器正确过滤表。

【讨论】:

以上是关于iOS 选择要在表格中显示的特定条目的主要内容,如果未能解决你的问题,请参考以下文章

表单/表格中的 SwiftUI 多个 NavigationLink - 条目保持突出显示

IOS 故事板 - 显示选择表格单元格的不同视图

LibreOffice 电子表格:使用特定过滤器选择随机单元格

避免在 ios 中的 UITableView 中出现重复条目

iOS 7 - 如何在表格视图中显示日期选择器?

Google表格:选择要在查询中选择的列