将swift应用程序上的所有文本()在SwiftUI中设置为相同的颜色

将swift应用程序上的所有文本()在SwiftUI中设置为相同的颜色,swift,swiftui,swift-playground,Swift,Swiftui,Swift Playground,我已经在我的Swift Playway应用程序中多次使用文本对象,但我希望将所有文本对象的颜色都更改为特定的白色,而不逐个更改每个文本属性。有办法做到这一点吗 免责声明:我正在Swift游乐场编程您可以创建自定义ViewModifier 然后,您可以在需要时将其应用于文本,只需在ViewModifier结构中对其进行更改 struct ContentView: View { var body: some View { Text("Your Text")

我已经在我的Swift Playway应用程序中多次使用文本对象,但我希望将所有文本对象的颜色都更改为特定的白色,而不逐个更改每个文本属性。有办法做到这一点吗

免责声明:我正在Swift游乐场编程

您可以创建自定义ViewModifier

然后,您可以在需要时将其应用于文本,只需在ViewModifier结构中对其进行更改

struct ContentView: View {
    var body: some View {
        Text("Your Text")
            .modifier(MyTextModifier())
    }
}
可以创建自定义视图修改器

然后,您可以在需要时将其应用于文本,只需在ViewModifier结构中对其进行更改

struct ContentView: View {
    var body: some View {
        Text("Your Text")
            .modifier(MyTextModifier())
    }
}
您可以创建自己的视图,该视图的主体是文本,并且具有一个颜色属性,可以用作文本的前底色。如果将“颜色”属性设置为静态,它将应用于视图的所有实例

您只需确保在需要相同颜色的所有位置使用ColoredText而不是文本,如果更改ColoredText.color,所有实例都将应用新的文本颜色

struct ColoredText: View {
    @State static var color: Color = .primary
    @State var text: String

    var body: some View {
        Text(text)
            .foregroundColor(ColoredText.color)
    }
}
您可以创建自己的视图,该视图的主体是文本,并且具有一个颜色属性,可以用作文本的前底色。如果将“颜色”属性设置为静态,它将应用于视图的所有实例

您只需确保在需要相同颜色的所有位置使用ColoredText而不是文本,如果更改ColoredText.color,所有实例都将应用新的文本颜色

struct ColoredText: View {
    @State static var color: Color = .primary
    @State var text: String

    var body: some View {
        Text(text)
            .foregroundColor(ColoredText.color)
    }
}

如果要更改所有内容,可以使用以下选项:

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello World")
            Text("aha")
            Button(action: {}) {
                  Text("Tap here")
              }
            }.colorInvert()
        .colorMultiply(Color.red)
    }
  }

如果要更改所有内容,可以使用以下选项:

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello World")
            Text("aha")
            Button(action: {}) {
                  Text("Tap here")
              }
            }.colorInvert()
        .colorMultiply(Color.red)
    }
  }