在下面的代码中,蓝色矩形由于阴影而看起来略微位于红色矩形上方。
是否可以让它们看起来像它们在同一层上,从而使任何人的阴影都不在其他阴影之上?谢谢。
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 !!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句