更改iOS 11大标题颜色

时间:2017-06-29 10:59:25

标签: ios objective-c uinavigationbar

我正在iOS 11中使用新的放大导航栏标题。但我似乎无法更改textColor。

我尝试过:

self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};

这没有做任何事情。有什么想法吗?

5 个答案:

答案 0 :(得分:19)

fig, ax = plt.subplots()
sc = ax.scatter(x,y, c=something)
fig.colorbar(sc)

答案 1 :(得分:7)

我认为它仍然是Xcode 9 beta 6中的一个错误。

我找到了不同的“解决方案”:

  1. 如果你把它放在AppDelegate中,可以改变标题的颜色:
  2.     if #available(iOS 11.0, *) {
          UINavigationBar.appearance().largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
        }
    
    1. 其他方法是在Controller的viewDidLoad中设置颜色,但使其工作的秘诀是设置字体:
    2.     if #available(iOS 11.0, *) {            
            self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue, NSAttributedStringKey.font: UIFont.systemFont(ofSize: 31, weight: UIFont.Weight.bold) ]
          }
      

      希望它对你有所帮助。

      问候!

答案 2 :(得分:1)

iOS 11

enter image description here

目标C

if (@available(iOS 11.0, *)) {
    self.navigationController.navigationItem.largeTitleDisplayMode =  UINavigationItemLargeTitleDisplayModeAlways;
    self.navigationController.navigationBar.prefersLargeTitles = true;

// Change Color
    self.navigationController.navigationBar.largeTitleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};

} else {
    // Fallback on earlier versions
}

答案 3 :(得分:0)

Swift 4.2

self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]

具有指定颜色的

self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor(named: "Teal") ?? UIColor.black]

答案 4 :(得分:0)

快速浏览Swift 3.2(不是Swift 4 +)

        self.navigationController?.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]