这是我创建自定义NavBar的方式:
class CustomNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.navigationBar.tintColor = UIColor(red:1, green:1, blue:1, alpha:0.6)
self.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
if #available(iOS 11.0, *) {
self.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .automatic
self.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
self.navigationBar.barTintColor = UIColor.green
}
self.navigationBar.isTranslucent = false
self.navigationBar.setBackgroundImage(#imageLiteral(resourceName: "navigationBarBackground"), for: .default)
self.navigationBar.shadowImage = #imageLiteral(resourceName: "navigationBarShadow")
}
}
奇怪的是,setBackgroundImage(image, for: .default)
对于大标题不起作用。它在 iOS 10 上之前有效,并且如果我旋转 iPhone(并激活小 NavBar),则背景会出现?
编辑:
backgroundImage
仍然呈现,但某种方式被隐藏。只有当您开始滚动并出现“常规”导航栏时,才能看到 backgroundImage。此时完全忽略 barTintColor
。