Swiftui 让形状在同一层上

Swiftui 让形状在同一层上,swiftui,Swiftui,在下面的代码中,由于阴影的原因,蓝色矩形看起来略高于红色矩形 有没有可能让它们看起来像在同一层上,这样就没有一个阴影在其他阴影之上?谢谢 我假设您需要合成组(所以阴影一次应用于所有矩形,而不是一个) }//ZStack(容器) .padding() .compositingGroup()//啊,你完全正确,我忘了这个,再次感谢。 import SwiftUI import PlaygroundSupport typealias HA = HorizontalAlignment typeali

在下面的代码中,由于阴影的原因,蓝色矩形看起来略高于红色矩形

有没有可能让它们看起来像在同一层上,这样就没有一个阴影在其他阴影之上?谢谢


我假设您需要合成组(所以阴影一次应用于所有矩形,而不是一个)

}//ZStack(容器)
.padding()

.compositingGroup()//啊,你完全正确,我忘了这个,再次感谢。
import SwiftUI
import PlaygroundSupport

typealias HA = HorizontalAlignment
typealias VA = VerticalAlignment

let w: CGFloat = 200
let h: CGFloat = 100

let r1 = Rectangle().padding(1).frame(w, h).foregroundColor(.pink)
let r2 = Rectangle().padding(1).frame(h, w).foregroundColor(.blue)

// live view
struct ContentView: View {
    var body: some View {
        ZStack {
            r1
                .alignmentGuide(HA.center) { $0[.leading] }
                .alignmentGuide(VA.center) { $0[.bottom] }
            r1
                .alignmentGuide(HA.center) { $0[.trailing] }
                .alignmentGuide(VA.center) { $0[.top] }
            r2
                .alignmentGuide(HA.center) { $0[.trailing] }
                .alignmentGuide(VA.center) { $0[.bottom] }
            r2
                .alignmentGuide(HA.center) { $0[.leading] }
                .alignmentGuide(VA.center) { $0[.top] }
        }// ZStack (container)
            .padding()
            .shadow(color: .black, radius: 8, x: 8, y: 8)
            .background(Color.gray)
    }
}

PlaygroundPage.current.setLiveView(ContentView())
    }// ZStack (container)
        .padding()
        .compositingGroup()    // << here !!