【发布时间】:2022-01-03 11:49:22
【问题描述】:
我为我的主屏幕添加了闪光效果,如下面的代码。
VStack{
TopView()
HomeView()
}
.redacted(.placeholder)
我得到了如下图所示的输出。
微光视图显示彩色视图的颜色,但普通视图显示灰色。
我可以将整个微光视图更改为灰色而不在微光中显示彩色视图吗?
【问题讨论】:
标签: swiftui placeholder shimmer
我为我的主屏幕添加了闪光效果,如下面的代码。
VStack{
TopView()
HomeView()
}
.redacted(.placeholder)
我得到了如下图所示的输出。
微光视图显示彩色视图的颜色,但普通视图显示灰色。
我可以将整个微光视图更改为灰色而不在微光中显示彩色视图吗?
【问题讨论】:
标签: swiftui placeholder shimmer
一种方法可能是调整您的自定义子视图,以响应它们是否被要求显示为密文。
例如,如果您有一个在红色背景中添加一段文本的视图,例如:
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)
}
}
【讨论】:
redactableBackground 修饰符并使用它来代替 background。这将减少散布在各处的自定义编辑代码的数量。