是否可以隐藏 UITableView 的行但不能隐藏搜索栏?

Posted

技术标签:

【中文标题】是否可以隐藏 UITableView 的行但不能隐藏搜索栏?【英文标题】:Is it possible to hide a UITableView's rows but not the search bar? 【发布时间】:2015-10-27 19:25:57 【问题描述】:

我有一个带有 UISearchBar 的 UITable

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 70, 320, 44)];
self.tableView.tableHeaderView = self.searchBar;

“隐藏”属性隐藏整个表格,包括搜索栏。

self.tableView.hidden = false;

有没有什么简单的方法可以隐藏表格的行,而不是搜索栏?当搜索没有返回结果时,我想显示另一个 UIView。

【问题讨论】:

【参考方案1】:

是的!

    使用UIViewController 而不是UITableViewController 添加tableView(距顶部44px) 在最上面添加Searchbar,(不在TableView中)

现在你可以走了。

【讨论】:

这是一种可怕的方式! ios 标准 UI 在 tableview 中嵌入了搜索栏,因此当用户向上滚动时它会滚动到一边。为什么没有 UISearchController 来管理搜索? @Avi 这有什么可怕的。请在技术上具体。考虑到,问题具体说明了要求是不要隐藏searchBar @rptwsthi,再次感谢您的回答,不得不拒绝接受,因为我最终选择了以下答案中建议的解决方案——对我来说更容易实施并更好地适应我已经拥有的东西。 @Avi 只是不使用 UISearchController 的个人实现选择。据我所知,我真的不需要它,它让我的生活更轻松,因为我必须支持旧版本的 iOS。【参考方案2】:

我所做的是当没有结果时,所以行数 = 0,我改为返回 1 行。这一行是一个 UITableViewCell ,它是你的空屏幕。因此,您应该计算 UITableView 的高度并从中减去搜索视图的高度。此高度是您的“搜索为空”视图高度。

【讨论】:

以上是关于是否可以隐藏 UITableView 的行但不能隐藏搜索栏?的主要内容,如果未能解决你的问题,请参考以下文章

摆脱 UITableView 上方的行

删除重复行但保留最早的行(按日期标准) - SQL Server

如何跳过已经迭代的行但读取未迭代的下一行?

T-SQL:删除所有重复的行但保留一个[重复]

从 uitableview 隐藏或删除部分

excel隐藏的行不能恢复,一行行拉的话可以,全选后再点右键取消隐藏却不行,是怎么回事?