iOS 13导航栏不适合内容

时间:2019-06-07 06:10:23

标签: swift ios13

我将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上被调用。

如何解决此问题?

enter image description here

1 个答案:

答案 0 :(得分:0)

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