struct ColoredText: View {
@State static var color: Color = .primary
@State var text: String
var body: some View {
Text(text)
.foregroundColor(ColoredText.color)
}
}
struct MyApp: App {
var body: some Scene {
WindowGroup {
MyAppContentView()
.foregroundColor(.red)
}
}
}
struct MyAppContentView: View {
var body: some View {
Text("This is red - the default")
Text("This is blue")
.foregroundColor(.blue)
}
}
4条答案
按热度按时间ghhkc1vu1#
您可以创建自定义
ViewModifier
然后,您可以在需要的地方将其应用于
Text
,并且您只需要在ViewModifier结构中更改它。tkqqtvp12#
您可以创建自己的
View
,其主体是Text
,并且具有color
属性,您可以将其用作Text
的foregroundColor
。如果您将color
属性设置为static
,则它将应用于View
的所有示例。你只需要确保在所有需要相同颜色的地方使用
ColoredText
而不是Text
,如果你更改了ColoredText.color
,所有示例都将应用新的文本颜色。fd3cxomn3#
如果你想改变所有你可以使用这个:
pw9qyyiw4#
如果你的整个应用都是SwiftUI,那么你可以在根应用foregroundColor修饰符。这将使应用中的所有文本变为红色,除非你在需要的地方使用foregroundColor指定其他方式。