首页 > 解决方案 > Swift - 大标题和搜索栏

问题描述

我正在尝试在我的 tableViewController 中使用 LargeTitle 和 searchBar。

我想要一个白色的导航栏和非半透明的。

我真的找不到任何方法来做到这一点。

我的代码,进入 viewDidLoad():

if #available(iOS 11.0, *) {
         self.navigationController?.navigationBar.prefersLargeTitles = true
}

self.navigationController?.navigationBar.isTranslucent = true
let img = UIImage(named: "backgroundNav")
navigationController?.navigationBar.setBackgroundImage(img, for: .default)
searchController.searchBar.searchBarStyle = .minimal
self.navigationItem.searchController = searchController
self.navigationController?.navigationBar.shadowImage = UIImage()

这里的问题是,当 searchBar 处于活动状态时,状态栏上有一个空白:

在此处输入图像描述

我想要那样的东西。 在此处输入图像描述

如果我删除这些行,它就可以工作,但是带有一个半透明的导航栏:

let img = UIImage(named: "backgroundNav")
navigationController?.navigationBar.setBackgroundImage(img, for: .default)

如果您对我如何做到这一点有任何想法,那将非常有帮助。

标签: iosswiftuitableviewswift3uisearchbar

解决方案


只需选择导航控制器并将其设置prefer large title在 IB 中。那应该行得通。让我知道这是否有帮助。


推荐阅读