4

我在 iOS 13 中将导航栏设置为透明时遇到了问题。我有一个导航栏,当视图控制器出现/消失时显示和隐藏。

当我弹出导航控制器并再次显示导航栏时,背景图像和阴影图像并没有填充导航栏的所有内容。

正如您从图像中看到的那样,我在导航栏中有搜索栏,它源自UISearchController.

这是显示/隐藏导航栏的代码:

extension UINavigationController {
    public func showTransparentNavigationBar() {
        navigationBar.setBackgroundImage(UIImage(), for: .default)
        navigationBar.shadowImage = UIImage()
    }

    public func hideTransparentNavigationBar() {
        navigationBar.setBackgroundImage(nil, for: .default)
        navigationBar.shadowImage = nil
    }
}

viewDidAppear这些方法在初始视图控制器和推送视图控制器上被调用。

我该如何解决这个问题?

在此处输入图像描述

4

1 回答 1

0

对我来说,解决方案是在包含 SearchBar 的 ViewController 中设置extendedLayoutIncludesOpaqueBars为。true

于 2019-09-24T14:27:46.893 回答