SwiftUI,具有统一阴影的多个形状?

问题描述 投票:0回答:1

SwiftUI中是否有一种方法可以将两个形状结合起来,以便它们投射出统一的阴影。我尝试了各种组合和修饰符,但似乎无法实现我追求的外观。任何见解将不胜感激。

struct CardView: View {
    var body: some View {
        Group {
            RoundedRectangle(cornerRadius: 20)
                .fill(Color.orange)
                .frame(width: 200, height: 250)
                .zIndex(0)
            Circle()
                .trim(from: 0.5, to: 1)
                .fill(Color.orange)
                .frame(width: 100, height: 100)
                .offset(y: -125)
                .zIndex(1)
        }.shadow(color: Color.black, radius: 10, x: 0, y: 0)
    }
}

这就是我得到的,以及我所追求的...

enter image description here

[注意:zIndex只是我尝试过的东西,即两个形状都具有相同的zIndex等。这也是一种无需在容器内移动形状就可以重新排序的快速方法。

swiftui shadow shapes
1个回答
0
投票

这里是可能的解决方案。经过Xcode 11.4 / iOS 13.4的测试]

“ enter image description here

struct CardView: View {
    var body: some View {
        VStack(spacing: 0) {
            Circle()
                .trim(from: 0.5, to: 1)
                .fill(Color.orange)
                .frame(width: 100, height: 100)
                .offset(x: 0, y: 50)
            RoundedRectangle(cornerRadius: 20)
                .fill(Color.orange)
                .frame(width: 200, height: 250)
        }
        .compositingGroup()
        .shadow(color: Color.primary, radius: 10, x: 0, y: 0)
    }
}
    
© www.soinside.com 2019 - 2024. All rights reserved.