我正在尝试修改 SwiftUI 中的导航栏文本属性(以添加文本阴影),但在试图理解为什么我在模拟器中收到运行时崩溃时遇到了困难。还有另一个线程(引用:下面)能够使用 init() 修改外观来解决更改字体类型的问题,但是尝试使用 init 修改 Text("") 方法以添加阴影会导致崩溃。
我还尝试将 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)
}
}
}
最佳答案
应该提供NSShadow
对象而不是数字,如下所示
init() {
let shadow = NSShadow()
shadow.shadowOffset = CGSize(width: 5, height: 2)
UINavigationBar.appearance().largeTitleTextAttributes = [.shadow: shadow]
}
关于ios - 试图修改 SwiftUI 导航栏文本属性的运行时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59806685/