如何更改 SwiftUI 编辑微光效果的颜色

How to change the Color of SwiftUI redacted shimmer effect

我像下面的代码一样为我的主屏幕添加了微光效果。

VStack{
  TopView()
  HomeView()
}
.redacted(.placeholder)

我得到了如下图所示的输出。

https://ibb.co/xFXQ2sk

微光视图显示彩色视图的颜色,但普通视图显示灰色。

我可以将整个微光视图更改为灰色而不显示微光中的彩色视图吗?

一种方法可能是调整您的自定义子视图以响应它们是否被要求显示为密文。

例如,如果您有一个在红色背景中添加一段文本的视图,例如:

struct LabelView: View {
  var text: String

  var body: some View {
    Text(text)
       .padding()
       .background(Color.red)
  }
}

然后您可以调整它以在编辑时使用灰色:

struct LabelView: View {
  @Environment(\.redactionReasons) var redactionReasons
  var text: String

  var body: some View {
    Text(text)
       .padding()
       .background(redactionReasons.contains(.placeholder) ? Color.gray : Color.red)
  }
}