我无法理解compositingGroup()是什么。起初,我以为它像Photoshop中的“合并图层”。但实际上不是这样的。因为即使我使用.compositingGroup(),.shadow()效果也会分别作用于覆盖和背景视图。
到目前为止,当我使用.compositingGroup()时,我发现了两个不同之处:
- 文本没有阴影。
- 覆盖视图的阴影大小略小于上方的阴影。
那么,compositingGroup的目的是什么?
struct ContentView: View {
var body: some View {
VStack(spacing: 50) {
Text("Without\ncompositing")
.font(.largeTitle)
.bold()
.padding()
.foregroundColor(Color.white)
.background(RoundedRectangle(cornerRadius: 30).fill(Color.red))
.padding()
.padding()
.overlay(RoundedRectangle(cornerRadius: 30).stroke(lineWidth: 10))
.shadow(color: .blue, radius: 5)
Text("With\ncompositing")
.font(.largeTitle)
.bold()
.padding()
.foregroundColor(Color.white)
.background(RoundedRectangle(cornerRadius: 30).fill(Color.red))
.padding()
.padding()
.overlay(RoundedRectangle(cornerRadius: 30).stroke(lineWidth: 10))
.compositingGroup() // <--- I added .compositingGroup() here.
.shadow(color: .blue, radius: 5)
}
}
}