显示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;
它会工作….