本文介绍了导航栏为大标题时不应用barTintColor的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在更新一个在Xcode10上编译的应用程序,在iOS 13上运行良好。我想做一些更改,所以在Xcode11上重新编译了一下,现在barTintColor出现了问题。
如果"Large Titles"设置为"Always",则不会应用我的自定义barTintColor--我只会得到默认的灰色。如果"Large Titles"设置为"Never",则我的自定义barTintColor将按预期应用。如果"大标题"设置为"自动",则当显示大标题时,导航栏默认为灰色,当显示小标题时,导航栏为我的自定义颜色。例如,当我的导航栏下面的TableView被向上推时,默认的大标题切换到小标题,并且我的导航栏改变颜色。正常的行为是它总是我的定制颜色。我的ViewController类中的相关代码,最后一行是设置barTintColor:
override func viewDidLoad() {
super.viewDidLoad()
setDelegates()
setTableViewHeightForCollapsingHeaders()
setNavigtionBarItems()
doSplitViewManagement()
}
override func viewWillAppear(_ animated: Bool) {
clearsSelectionOnViewWillAppear = splitViewController!.isCollapsed
super.viewWillAppear(animated)
updateUI()
}
fileprivate func setNavigtionBarItems() {
//set up UI buttons
navigationItem.leftBarButtonItem = editButtonItem
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertNewObject(_:)))
navigationItem.rightBarButtonItem = addButton
navigationController?.navigationBar.barTintColor = UIColor(hex: 0x5da0a2)
}
是否知道行为更改的原因以及如何修复它?
推荐答案
IOS 13版本新增接口https://developer.apple.com/documentation/uikit/uinavigationbarappearance
您要查找的background Color属性位于超类中https://developer.apple.com/documentation/uikit/uibarappearance此处有一些额外的示例代码https://developer.apple.com/documentation/uikit/uinavigationcontroller/customizing_your_app_s_navigation_bar这篇关于导航栏为大标题时不应用barTintColor的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!