0

我正在尝试修改 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)

        }
    }
}

参考:https ://stackoverflow.com/a/57632229/1514009

4

1 回答 1

1

应该提供NSShadow对象而不是数字,如下所示

SwiftUI 导航栏阴影

init() {
    let shadow = NSShadow()
    shadow.shadowOffset = CGSize(width: 5, height: 2)
    UINavigationBar.appearance().largeTitleTextAttributes = [.shadow: shadow]
}
于 2020-01-19T06:11:42.287 回答