永久隐藏 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 隐藏导航栏,将其永久隐藏

在活动中永久隐藏导航栏

Mac “永久” 隐藏Dock

如何在android中永久隐藏状态栏? [关闭]

MPMoviePlayerController : 播放器仅在 iOS 6 中永久隐藏播放器控件

php 永久隐藏管理信息中心的XL通知