我将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
上被调用。
如何解决此问题?
答案 0 :(得分:0)
对我来说,解决方案是在包含SearchBar的ViewController中将extendedLayoutIncludesOpaqueBars
设置为true
。