【发布时间】: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 的框架;我仍然有缺少下拉刷新指示器的副作用。
标签: ios uitableview ios7 uisearchdisplaycontroller searchdisplaycontroller