it-roy-ru.com

Изменить iOS 11 большой цвет заголовка

Я использую новые увеличенные заголовки навигационной панели в iOS 11. Но я не могу изменить textColor.

Я пытался сделать:

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

Это ничего не сделало. Есть идеи?

4
user4992124
self.navigationController.navigationBar.largeTitleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]}; 
17
David Knight

Я думаю, что это все еще ошибка в Xcode 9 beta 6.

Я нашел разные «решения» для этого:

  1. Можно изменить цвет заголовка, если вы добавите это в AppDelegate:
 если # недоступно (iOS 11.0, *) {
 UINavigationBar.appearance (). LargeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue] 
 } 
  1. Другой способ - установить цвет в viewDidLoad вашего контроллера, но секрет, как заставить его работать, - это также установить шрифт:
 если # недоступно (iOS 11.0, *) {
 self.navigationController? .navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue, NSAttributedStringKey.font: UIFont.systemFont (ofSize: 31, вес: UIFont.Weight.bold)] 
 } 

Надеюсь, это поможет вам.

С уважением!

7
Kevin Furman

iOS 11

 enter image description here

Objective-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
}
1
Vivek