出现在导航下方的 IOS 搜索栏

Posted

技术标签:

【中文标题】出现在导航下方的 IOS 搜索栏【英文标题】:IOS Search bar that appears below navigation 【发布时间】:2016-06-22 21:17:30 【问题描述】:

我正在尝试在导航栏下方显示一个与 UISearchController 相关联的搜索栏,类似于:

目前,搜索栏替换了标题,这在我见过的大多数/所有 ios 应用程序中都很常见。我尝试通过几种方法来控制搜索栏显示:

1) 创建一个位于导航栏下方的新视图,并将 SearchController 的搜索栏分配给它。

//instead of:
//navigationItem.titleView = searchBar
//do this:
searchplaceholder.addSubview(searchBar)

但是搜索栏显示在屏幕下方的 1/2 处。

2)第二次尝试是将搜索栏的框架移动到原点:

searchBar.frame = CGRectMake(0, 0, self.view.frame.width, searchBar.frame.height)
view.addSubview(searchBar)
resultSearchController?.active = true

最初看起来不错:

但我一开始打字,栏就又跳得很低:

我如何劫持 SearchController 以在导航栏中显示它的栏而不隐藏页面标题或限制搜索栏显示在导航栏的正下方?

【问题讨论】:

【参考方案1】:

总而言之,你不能做我想做的事。您创建一个搜索栏,当单击该搜索栏时,它会转换到标题中带有搜索栏的第二个屏幕。与我上面列出的相比,这提供了最干净的体验。

【讨论】:

以上是关于出现在导航下方的 IOS 搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 通过动画将搜索栏从中心移动到导航栏下方(Swift)

iOS 13 导航栏问题 - 部分导航栏变得透明

如何在 UISplitViewController 的导航栏下方添加搜索栏?

无法使 UITableView 出现在半透明导航栏下

ios 11 自定义导航栏位于状态栏下方

Swift iOS以编程方式在导航栏下方设置scrollView约束