2010-12-14 88 views
4

我已经使用Apple的TableSearch示例参考实现了一个UISearchDisplayController。我的列表包含超过10,000个元素,这使得筛选过于缓慢,无法在用户输入的每个字符上执行。我已经设法限制搜索,当用户点击搜索按钮时使用下面的代码。没有即时搜索的UISearchDisplayController:如何控制TableView的调光?

- (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; 
} 

现在,我的问题是,一旦用户输入的第一个字符表视图的调光消失,我想保持它的灰色,直到用户点击搜索布顿。 (或取消搜索。)

回答

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; 
} 

另一种选择是编码自己的。

相关问题