gpt4 book ai didi

ios - 当 NavigationBar 为大标题时,不应用 barTintColor

转载 作者:行者123 更新时间:2023-12-05 08:30:58 25 4
gpt4 key购买 nike

我正在更新一个在 Xcode 10 上编译并在 iOS 13 上运行良好的应用程序。我想进行一些更改,因此在 Xcode 11 上重新编译,现在 barTintColor 出现问题。

如果“大标题”设置为“始终”,我的自定义 barTintColor 将不会应用——我只会获得默认的灰色。如果“大标题”设置为“从不”,我的自定义 barTintColor 将按预期应用。如果“大标题”设置为“自动”,则在显示大标题时导航栏默认为灰色,在显示小标题时导航栏为我的自定义颜色。例如,当我的导航栏下方的 TableView 被向上推时,默认的大标题切换为小标题,并且我的导航栏改变颜色。正常行为是它始终是我的自定义颜色。

来 self 的 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)

}

知道行为改变的原因以及如何解决吗?

最佳答案

glotcha 指出的 Apple 文档对于解决问题至关重要,尽管还有更多内容。这是适用于 iOS 13 的 setNavigationBarItems() 的更新版本:

fileprivate func setNavigtionBarItems() {

if #available(iOS 13.0, *) {
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = myBackgroundColor

navigationController?.navigationBar.standardAppearance = appearance
navigationController?.navigationBar.scrollEdgeAppearance = appearance
//navigationController?.navigationBar.compactAppearance = appearance

} else {
// Fallback on earlier versions
navigationController?.navigationBar.barTintColor = myBackgroundColor
}
}

在我的案例中,一个关键点是我的导航栏设置(在自动版式中)将“大标题”设置为“自动”。这使得有必要包含 .scrollEdgeAppearance 行,以便在从大到紧凑过渡时应用自定义外观。原来 .compactAppearance 行不是必需的,因为我对两者使用相同的颜色。如果我想要大和紧凑的不同外观设置,那么 .compactAppearance 行也很有用。

关于ios - 当 NavigationBar 为大标题时,不应用 barTintColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60795035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com