修复 UITableView 顶部的 UISearchdisplaycontroller 搜索栏

Posted

技术标签:

【中文标题】修复 UITableView 顶部的 UISearchdisplaycontroller 搜索栏【英文标题】:Fix UISearchdisplaycontroller searchbar at top of UITableView 【发布时间】:2014-11-19 06:43:22 【问题描述】:

我有一个 UITableView 和 UISearchDisplayController 但是当我滚动 tableview 时,搜索栏也会随之滚动。为了克服这个问题,我将 UISearchDisplayController 搜索栏移到了 UITableView 之外,现在我的布局如下,还将搜索栏的 y 位置调整为 65 并相应调整了 tableview 的高度

View
  -> SearchBar
  -> TableView
       -> ContentListCell

移出搜索栏后,当我开始搜索时,搜索栏移到上方并且看不到。 我该如何解决这个问题?我想将搜索栏保持在顶部。

谢谢。

【问题讨论】:

【参考方案1】:

如果您不希望 UISearchbar 在激活时向上移动,您可以将 UISearchDisplayController 的属性 displaySearchBarInNavigationBar 设置为 NO。

【讨论】:

在从搜索结果中选择搜索按钮时将displaySearchBarInNavigationBar属性设置为NO后隐藏搜索栏。 我以前在 ios 7 中遇到过一些关于 searchBar 和 UISearchDisplayController 的问题。这可能不是一个很好的解决方案,但我通过仅使用 UISearchBar 并提供我自己的 TableView 来显示结果来解决它.否则,我必须将搜索栏添加为 TableView 的 HeaderView 以使其正常工作,但它当然会随着 TableView 滚动。

以上是关于修复 UITableView 顶部的 UISearchdisplaycontroller 搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIToolbar 帮助修复 UIViewController

UITableView - 如何在用户滚动时保持表格行固定

从 UITableView 中删除顶部填充

UIView 中的 UISearchBar

在顶部和底部停止滚动UITableView?

在 UITableView 中滚动到 UISearchBar 的顶部