0

我试图隐藏在iOS 7表视图控制器中附加到UITableView的searchDisplay控制器。我不想暂时将它从顶部滚动;我希望它完全禁用。永久隐藏UISearchDisplayController

在我的表视图控制器代码(这FWIW设置为分组样式because of this),我有:

self.searchDisplayController.searchBar.hidden = YES;

这确实隐藏搜索栏,但不幸的是结果是一个空白框坐在我桌子的顶部:

Blank Search Bar Space Screenshot

这个空白将滚动关闭屏幕就像搜索栏。 self.searchDisplayController.searchBar.hidden = NO;将按预期返回搜索栏。

我试图使用this question的问题和回答的建议来将我的表格视图向上移动44个像素,除了它具有隐藏顶部的拉到刷新指示符的副作用外我的桌子。

我也试着设置我的搜索栏的框架已经没有高度,像这样:

self.searchDisplayController.searchBar.frame = CGRectMake(0, 0, self.tableView.frame.size.width, 0); 

但这并没有得到我的表的顶部或者去掉空白的。

如何从UISearchDisplayController中隐藏搜索栏,并实际占用空间,就好像它不在第一个那样?

+0

您是否想过检查搜索显示是否实际隐藏?例如if(self.searchDisplayController.searchBar.hidden){//使帧= 0; } else {// make frame = 44}然后设置低于那个的帧 – user2277872

+0

我在基于standardUserDefaults值的if语句中设置隐藏属性。我曾尝试在设置隐藏属性的同一if语句中设置searchBar的框架;我仍然有缺失的拉到刷新指示器的副作用。 – Nick

回答

0

我最终通过链接应用程序的行为规避了这种奇怪行为的条件来解决这个问题。我不确定这种行为是否在以后的操作系统版本中得到修复。