0

我为我的主屏幕添加了一个微光效果,如下面的代码。

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

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

https://ibb.co/xFXQ2sk

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

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

4

1 回答 1

1

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

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

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)
  }
}

于 2021-11-25T08:27:13.297 回答