如何使用 UISearchBar 仅搜索 UITableView 的部分标题?

Posted

技术标签:

【中文标题】如何使用 UISearchBar 仅搜索 UITableView 的部分标题?【英文标题】:How to use UISearchBar to search only the sections titles of a UITableView? 【发布时间】:2012-11-03 18:14:37 【问题描述】:

我有一个UITableView,其中包含多个部分和许多行。

我不需要详细搜索,遍历tableview 中的所有单元格。

所有章节标题都包含在NSMutableArray 中。

有没有一种简单的方法可以只搜索UITableView 的部分标题,而不考虑单元格内容?

谢谢!

【问题讨论】:

【参考方案1】:

您必须在表格的头部插入 uisearchbar。接下来,您必须实现一种方法,在带有标题的数组上搜索并创建一个包含要显示的元素的新数组(标题和单元格,它们也可以是两个数组,您必须根据正常的应用程序工作流程进行选择)和重新加载表格。

【讨论】:

感谢您的帮助!我稍后试试!【参考方案2】:

参见this Apple 示例实现 - 注意函数名为:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope

这里,而不是:

for (Product *product in listContent)

你可以放:

for (NSString *sectionHeader in YourSectionArray)

还可以根据需要更改此功能的实现,您应该完成。 (例如,您可以忽略范围的事情,因为您只想搜索只是一个简单字符串的节标题)此功能只是搜索例程,您可以根据需要进行更改。它实际上是由以下委托函数调用的 - 您不想更改:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString

请注意,我建议的这个控件是一个内置的 tableview 控件,已经带有搜索栏。它是:

UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>

如果您自己添加了搜索栏,您需要将这两个代理都添加到您的 UITableView .h 文件中,就像我在上面所做的那样。如果您更愿意复制 Apple 的示例实现,请不要担心。

【讨论】:

感谢您的帮助!我稍后试试!

以上是关于如何使用 UISearchBar 仅搜索 UITableView 的部分标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中为 UISearchBar 设置最近的搜索历史下拉列表

单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?

UISearchBar 中不显示取消按钮

如何使用 UISearchBar 优化核心数据 NSFetchedResultsController?

如何以编程方式强制在 UISearchBar 中进行搜索?

如何在 iOS 10 的目标 c 中使用 uisearchbar?