我有一个UITableView
已实施searchDisplayController
。我有
tableView.backgroundColor = [UIColor clearColor];
和
self.searchDisplayController.searchResultsTableview.backgroundColor = [UIColor clearColor];
当我在搜索字段中输入文字时,搜索结果显示正常,但由于结果表格的背景是透明的,我看到tableview
和tableview
搜索结果表格显示。我想在searchField开始编辑时隐藏tableView
。我试过了
-(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。如何解决?
答案 0 :(得分:2)
首先我知道您在searchDisplayController
上添加了UITableView
。
删除它请在查看控制器上添加UISearchDisplayController
而不是UITableView
,如果您隐藏UITableView
,那么UISearchDisplayController
也会隐藏因为您在UITableView
上添加了UISearchDisplayController。
谢谢:)
答案 1 :(得分: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;
}
答案 2 :(得分:0)
首先制作桌面插座并将其与桌面连接 然后尝试这行代码
tableView.hidden=TRUE;
它会起作用....