Сбой во время выполнения при попытке изменить атрибуты текста панели навигации SwiftUI
Я пытаюсь изменить текстовые атрибуты панели навигации в SwiftUI (чтобы добавить текстовую тень) и ударился о стену, пытаясь понять, почему я получаю сбои во время выполнения в симуляторе. Был другой поток (см. Ниже), который смог решить проблему изменения типа шрифта с помощью init() для изменения внешнего вида, однако попытка использовать init для изменения метода Text("") для добавления тени приводит к сбою.
Я также попытался извлечь текст ("NavBarTitle") в его собственный метод, а затем применить модификаторы (здесь не повезло). Как видно из моего кода, я пытался извлечь текст в переменную, что привело к сбою. Даже простое применение модификаторов напрямую вызывает сбой.
У меня недостаточно опыта в SwiftUI, чтобы назвать это ошибкой, но мне кажется, что это действительно так.
Заранее спасибо за помощь!
import SwiftUI
struct ContentView: View {
init() {
UINavigationBar.appearance().largeTitleTextAttributes = [.shadow: 5]
}
let navigationBarText: Text = Text("Navigation Bar")
var body: some View {
NavigationView {
VStack {
Text("Hello, World!")
}
.navigationBarTitle(navigationBarText)
}
}
}
1 ответ
Это должно быть предусмотрено NSShadow
объект вместо числа, как показано ниже
init() {
let shadow = NSShadow()
shadow.shadowOffset = CGSize(width: 5, height: 2)
UINavigationBar.appearance().largeTitleTextAttributes = [.shadow: shadow]
}