Пользовательский цвет фона для UINavigationBar с использованием SwiftUI - PullRequest
2 голосов
/ 25 января 2020

Я пытаюсь использовать свой собственный цвет фона для UINavigationBar с помощью SwiftUI, но я не могу изменить его, используя следующий код:

let attrs = [
     NSAttributedString.Key.foregroundColor: UIColor.blue,
     NSAttributedString.Key.font: UIFont(name: "AbrilFatface-Regular", size: 24)!]

UINavigationBar.appearance().titleTextAttributes = attrs
UINavigationBar.appearance().backgroundColor = UIColor(red:253/255, green:213/255, blue:211/255, alpha:1.0)

1 Ответ

0 голосов
/ 27 января 2020

Ваш код не имеет ничего общего с SwiftUI. Для изменения внешнего вида UINavigationBar вы должны использовать UIKit, который является предшественником SwiftUI. Приведенный ниже код изменит панели навигации глобально.

// Instantiate new UINavigationBarAppearance object
let navigationBarAppearance = UINavigationBarAppearance()
// Set background colour
navigationBarAppearance.backgroundColor = .black
// Set text color for title
navigationBarAppearance.titleTextAttributes = [.foregroundColor: UIColor.white]
// Set text color for large title
navigationBarAppearance.largeTitleTextAttributes = [.foregroundColor: UIColor.white]

// Assign appearance
UINavigationBar.appearance().standardAppearance = navigationBarAppearance
UINavigationBar.appearance().compactAppearance = navigationBarAppearance
UINavigationBar.appearance().scrollEdgeAppearance = navigationBarAppearance

Вызовите это в AppDelegate.swift файл indside приложение (_: didFinishLaunchingWithOptions:) метод. Этот код работает для iOS 13 + .

Вот документация Apple для Legacy Customizations на случай необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...