在 SwiftUI 中将 swift 应用程序上的所有 Text() 设置为相同颜色
Turn all Text() on swift app to the same color in SwiftUI
我在 Swift Playground 应用程序中多次使用了 Text("") 对象,但我想将所有对象的颜色更改为特定颜色(白色)而不更改每个文本 属性一个一个。有办法吗?
免责声明:我正在 Swift 游乐场
编程
您可以创建自定义 ViewModifier
struct MyTextModifier: ViewModifier {
func body(content: Content) -> some View {
content
.foregroundColor(Color.white)
}
}
然后你可以在需要的地方应用到Text
,你只需要在ViewModifier结构中改变它。
struct ContentView: View {
var body: some View {
Text("Your Text")
.modifier(MyTextModifier())
}
}
您可以创建自己的 View
,它的正文是 Text
并且有一个 color
属性 用作您的 foregroundColor
Text
。如果您创建 color
属性 static
,它将应用于您的 View
.
的所有实例
您只需要确保在所有需要相同颜色的地方使用 ColoredText
而不是 Text
,如果您更改 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)
}
}
我在 Swift Playground 应用程序中多次使用了 Text("") 对象,但我想将所有对象的颜色更改为特定颜色(白色)而不更改每个文本 属性一个一个。有办法吗?
免责声明:我正在 Swift 游乐场
编程您可以创建自定义 ViewModifier
struct MyTextModifier: ViewModifier {
func body(content: Content) -> some View {
content
.foregroundColor(Color.white)
}
}
然后你可以在需要的地方应用到Text
,你只需要在ViewModifier结构中改变它。
struct ContentView: View {
var body: some View {
Text("Your Text")
.modifier(MyTextModifier())
}
}
您可以创建自己的 View
,它的正文是 Text
并且有一个 color
属性 用作您的 foregroundColor
Text
。如果您创建 color
属性 static
,它将应用于您的 View
.
您只需要确保在所有需要相同颜色的地方使用 ColoredText
而不是 Text
,如果您更改 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)
}
}