显示searchResultsTableView时隐藏UITableView

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

 tableView.backgroundColor = [UIColor clearColor]; 

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

当我在search字段中input文本时,search结果显示正常,但由于结果表的背景是透明的,所以我看到了我的tableview并在tableview中显示了search结果表。 我想在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; } 

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

首先我知道你在UITableView上添加了searchDisplayController

删除它请添加你的UISearchDisplayController在你的视图控制器UITableView ,如果你隐藏UITableView然后UISearchDisplayController也隐藏,因为你在UITableView上添加了UISearchDisplayController。

谢谢 :)

您可以设置tableView的数据源,以便在search界面可见时返回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]来隐藏所有的内容。 然后在search完成后,重新加载表格视图再次显示内容。

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

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

 for (UITableViewCell *cell in tableView.visibleCells) { cell.hidden = YES; } 

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

 tableView.hidden=TRUE; 

它会工作….