是否可以隐藏 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 的行但不能隐藏搜索栏?的主要内容,如果未能解决你的问题,请参考以下文章