В предыдущей версии дизайна я менял шрифт, стиль и цвет .navigationTitle, используя примерно такой код:
Код: Выделить всё
final class AppSettings: ObservableObject {
@Published var tint: Color = .red {
didSet { updateNavigationBarAppearance() }
}
init() {
updateNavigationBarAppearance()
}
private func updateNavigationBarAppearance() {
let appearance = UINavigationBarAppearance()
appearance.configureWithTransparentBackground()
appearance.largeTitleTextAttributes = [
.font: UIFont.preferredFont(forTextStyle: .largeTitle).roundedBold,
.foregroundColor: UIColor(tint).withAlphaComponent(0.9)
]
appearance.titleTextAttributes = [
.font: UIFont.preferredFont(forTextStyle: .headline).roundedBold,
.foregroundColor: UIColor(tint).withAlphaComponent(0.9)
]
let navBarAppearance = UINavigationBar.appearance()
navBarAppearance.standardAppearance = appearance
navBarAppearance.compactAppearance = appearance
navBarAppearance.scrollEdgeAppearance = appearance
}
}
extension UIFont {
var roundedBold: UIFont {
guard let descriptor = fontDescriptor
.withDesign(.rounded)?
.withSymbolicTraits(.traitBold) else { return self }
return UIFont(descriptor: descriptor, size: pointSize)
}
}

Но возникла ошибка, связанная с тем, что это происходило в прокручиваемых представлениях, поскольку мы использовали внешний вид.configureWithTransparentBackground(), и прозрачность не работает в Конфигурация UINavigationBar.appearance().backgroundColor.

Благодаря обновлению версии ОС мы теперь можем воспользоваться преимуществами использования .toolbarBackground, который устранил проблему прозрачности при прокрутке в области навигации.


Однако, когда этот модификатор реализован, он влияет на шрифт заголовка навигации, возвращая ему шрифт с засечками по умолчанию и черный/белый цвет.
Кто-нибудь знает способ настроить заголовок, одновременно используя модификатор .toolbarBackground?
Хотя .navigationTitle принимает элемент Text, похоже, вы не можете его настроить, например:
Код: Выделить всё
.navigationTitle(
Text("Today")
.font(.system(.largeTitle, design: .rounded, weight: .black))
)

Подробнее здесь: https://stackoverflow.com/questions/778 ... in-swiftui
Мобильная версия