永久隐藏 UISearchDisplayController
Posted
技术标签:
【中文标题】永久隐藏 UISearchDisplayController【英文标题】:Permanently Hide UISearchDisplayController 【发布时间】:2014-02-17 23:02:33 【问题描述】:我试图在 ios 7 表视图控制器中隐藏附加到 UITableView 的 searchDisplay 控制器。我不想暂时将其从顶部滚动;我希望它被完全禁用。
在我的表格视图控制器代码(其中,FWIW 设置为分组样式 because of this)中,我有:
self.searchDisplayController.searchBar.hidden = YES;
这确实隐藏了搜索栏,但不幸的是,我的桌子顶部出现了一个空白框:
这个空白会像搜索栏一样滚出屏幕。 self.searchDisplayController.searchBar.hidden = NO;
将按预期带回搜索栏。
我尝试使用来自this question 的问题和答案的建议将我的表格视图向上移动 44 像素,除了它具有隐藏下拉刷新指示器的副作用之外,哪种方法有效我的桌子上。
我还尝试将搜索栏的框架设置为没有高度:
self.searchDisplayController.searchBar.frame = CGRectMake(0, 0, self.tableView.frame.size.width, 0);
但这也不能消除我桌子顶部的空白空间。
如何从 UISearchDisplayController 中隐藏搜索栏,并真正让它占据的空间折叠起来,就好像它一开始就不存在一样?
【问题讨论】:
你有没有想过检查搜索显示是否真的被隐藏了? if(self.searchDisplayController.searchBar.hidden) // 使 frame = 0; 之类的东西 else // 使 frame = 44 然后设置下面的框架 我根据标准用户默认值在 if 语句中设置了 hidden 属性。在设置 hidden 属性时,我确实尝试在相同的 if 语句中设置 searchBar 的框架;我仍然有缺少下拉刷新指示器的副作用。 【参考方案1】:我最终通过链接应用程序的行为来解决这个问题,以规避这种奇怪行为的条件。我不确定此行为是否在以后的操作系统版本中得到修复。
【讨论】:
以上是关于永久隐藏 UISearchDisplayController的主要内容,如果未能解决你的问题,请参考以下文章
使用 self.navigationController.hidesBarsOnSwipe = true 隐藏导航栏,将其永久隐藏