6

我有UITableView一个searchDisplayController实施的。我有

tableView.backgroundColor = [UIColor clearColor];

self.searchDisplayController.searchResultsTableview.backgroundColor = [UIColor clearColor];

当我在搜索字段中输入文本时,搜索结果显示正常,但由于结果表的背景是透明的,我看到我的tableview和在tableview搜索结果表上显示。我想隐藏tableViewsearchField 开始编辑的时间。我试过了

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller 
shouldReloadTableForSearchString:(NSString *)searchString
{
    [tableView setHidden:YES];
    [self filterContentForSearchText:searchString 
                               scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
                                      objectAtIndex:[self.searchDisplayController.searchBar
                                                     selectedScopeButtonIndex]]];

    return YES;
}

但它用 tableView 隐藏了 searchBar。如何解决?

4

3 回答 3

2

首先我知道你加searchDisplayControllerUITableView

请删除它并将您的视图控制器添加UISearchDisplayController到您的视图控制器UITableView,因为如果您隐藏UITableView然后UISearchDisplayController也隐藏,因为您添加了 UISearchDisplayController UITableView

谢谢 :)

于 2013-02-11T07:20:17.197 回答
2

您可以设置数据源tableView,使其在搜索界面可见时返回 0 个部分:

- (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView
{
    if (self.searchDisplayController.active && 
        (tableView != self.searchDisplayController.searchResultsTableview))
        return 0; // return 0 for bottom table view if search interface is active
    else
        return <your usual number of sections>
}

然后,您可以[tableView reloadData]隐藏所有内容,而不是隐藏您的表格视图。然后在搜索完成后,再次重新加载表格视图以再次显示内容。

重新加载表格视图将重置所有表格视图单元格和表格视图的内容偏移量,因此在某些情况下这样做可能不是一个好主意。

或者,您可以尝试遍历所有表格视图的可见单元格并像这样隐藏它们:

for (UITableViewCell *cell in tableView.visibleCells)
{
     cell.hidden = YES;
}
于 2013-02-11T07:25:50.870 回答
0

首先制作表格插座并将其与表格连接,然后尝试这行代码

tableView.hidden=TRUE;

它会工作....

于 2013-02-11T07:14:13.547 回答