在 SwiftUI 中将 swift 应用程序上的所有 Text() 设置为相同的颜色
Posted
技术标签:
【中文标题】在 SwiftUI 中将 swift 应用程序上的所有 Text() 设置为相同的颜色【英文标题】:Turn all Text() on swift app to the same color in SwiftUI 【发布时间】:2020-05-13 09:51:46 【问题描述】:我在我的 Swift Playground 应用程序中多次使用了 Text("") 对象,但我想将所有对象的颜色更改为特定颜色(白色),而无需一一更改每个 Text 属性。有没有办法做到这一点?
免责声明:我在 Swift Playground 中编程
【问题讨论】:
【参考方案1】:您可以创建自定义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())
【讨论】:
【参考方案2】:您可以创建自己的View
,其主体为Text
,并具有color
属性,可用作Text
的foregroundColor
。如果您将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)
【讨论】:
【参考方案3】:如果你想改变所有你可以使用这个:
struct ContentView: View
var body: some View
VStack
Text("Hello World")
Text("aha")
Button(action: )
Text("Tap here")
.colorInvert()
.colorMultiply(Color.red)
【讨论】:
以上是关于在 SwiftUI 中将 swift 应用程序上的所有 Text() 设置为相同的颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 5 在 SwiftUI 中将颜色与 RGB 或十六进制值一起使用? [复制]
在 SwiftUI 中将 ObservableObject 链接到 DatePicker
AppKit 上的 SwiftUI - 在弹出窗口中将焦点设置为 TextField
iPad 上的 Swift Playgrounds 无法按预期使用 SwiftUI 代码
SwiftUI - 从 Swift 类启动的可观察对象不会更新 ContentView() 上的 @ObservedObject