如何使用UISearchController删除UINavigationBar下面的阴影

Aff*_*ity 15 ios swift

图片1

我可以使用以下代码行成功删除导航栏下方的阴影.

self.navigationController?.navigationBar.shadowImage = UIImage()
Run Code Online (Sandbox Code Playgroud)

图2

然而,当我添加搜索控制器时,阴影再次出现.

self.navigationItem.searchController = UISearchController(searchResultsController: nil)
Run Code Online (Sandbox Code Playgroud)

图3

我尝试了以下操作,但导致了意外行为.

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.barTintColor = .white
self.navigationController?.navigationBar.isTranslucent = false
Run Code Online (Sandbox Code Playgroud)

图4

如果连接了搜索控制器,如何删除导航栏下的阴影?

Kir*_*row 5

我也没有找到好的解决方案...

现在,我将以这种方式隐藏它:

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if let imageView = navigationItem.searchController?.searchBar.superview?.subviews.first?.subviews.first as? UIImageView {
            imageView.isHidden = true
        }
    }
Run Code Online (Sandbox Code Playgroud)


Ara*_*mad 0

您可以改为添加searchBar到 StoryBoard 中的 viewController 并将其搜索样式属性设置为Minimal,它将如下所示:

在此输入图像描述