【问题标题】:Custom UINavigationController: title color自定义 UINavigationController:标题颜色
【发布时间】:2018-04-26 11:06:53
【问题描述】:

我需要为我的项目制作一个自定义导航控制器类,但我正在为导航栏标题颜色而苦苦挣扎。条形色调颜色和色调颜色正在正确更改,但我无法更改标题的颜色。这是我的代码:

    class SANavigationController: UINavigationController {

    // MARK: - Lifecycle

    override func viewDidLoad() {
        super.viewDidLoad()

        navigationBar.isTranslucent = false
        setupAppearance()
        setupBehaviour()
    }

    // MARK: - Setup

    func setupAppearance() {
        navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
        navigationBar.tintColor = .red
        navigationBar.barTintColor = .blue
    }

    private func setupBehaviour() {
        if #available(iOS 11.0, *) {
            navigationBar.prefersLargeTitles = true
            navigationItem.largeTitleDisplayMode = .automatic
        }
    }
}

提前致谢

【问题讨论】:

    标签: swift uinavigationcontroller


    【解决方案1】:

    要更改大标题的文本颜色,您应该使用

    navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
    

    虽然文本颜色和barTintColor 相同颜色有点奇怪,但它不会可见。

    【讨论】:

    • titleTextAttributes 是同时改变大标题和普通标题还是只改变普通标题?
    • @LloydKeijzer 似乎它只改变了正常的标题属性。大标题有不同的属性。
    • @NajdanTomić 谢谢,它有效。最后一句是什么意思?
    • @Lachtan 很高兴它有效。我的意思是,如果您的文本颜色和 barTintColor 相同,则该文本将不可见。
    • @NajdanTomić 啊哈,我明白了。这只是测试代码:) 好眼力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多