我使用Apple的TableSearch示例引用实现了一个UISearchDisplayController。我的列表包含超过10,000个元素,这使得过滤太慢而无法在用户输入的每个字符上执行它。我设法限制搜索到用户点击搜索按钮时使用以下代码。
- (void)searchBarSearchButtonClicked:(UISearchBar*)searchBar
{
[self filterContentForSearchText:[self.searchDisplayController.searchBar text]
scope:[self.searchDisplayController.searchBar selectedScopeButtonIndex]];
[self.searchDisplayController.searchResultsTableView reloadData];
}
- (BOOL)searchDisplayController:(UISearchDisplayController*)controller
shouldReloadTableForSearchString:(NSString*)searchString
{
return NO;
}
现在,我的问题是,只要用户输入第一个字符,表格视图的调光就会消失,我想让它变暗,直到用户点击搜索按钮。 (或取消搜索。)
答案 0 :(得分:3)
searchDisplayController是一个黑盒子,因此您无法控制何时显示searchResultsTableView(在searchBar中的第一次按键时)。
您可以在resultsTableView上显示半透明视图,以显示searchDisplayController提供的初始调光外观,但searchResultsTableView仍然可见。
- (BOOL)searchDisplayController:(UISearchDisplayController*)controller
shouldReloadTableForSearchString:(NSString*)searchString
{
// display a translucent view over the searchResultsTableView and
// make sure it's only created on first key press
return NO;
}
另一种选择是自己编码。