SwiftUI,仅用于容器的阴影

ale*_*ker 11 stack shadow swift swiftui

例如,我有这样的看法:

import SwiftUI

struct TarifsScreen: View {  
    var body: some View {        
        GeometryReader { geometry in            
            VStack {                
                VStack {
                    Spacer()
                    Text("Text1")
                    Spacer()
                    Text("Text2")
                    Spacer()
                    Text("Text3")
                    Spacer()                    
                }
            }
            .frame(width: geometry.size.width, height: geometry.size.height)
            .shadow(color: Color.white, radius: 10, x: 0, y: 0)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能只为VStack,而不是为里面的所有元素应用阴影VStack?我可以用ZStack和两个容器来做吗?

Asp*_*eri 22

添加背景并为其应用阴影,如下例所示

演示

  VStack {
    ...
  }
  .background(Color.white // any non-transparent background
    .shadow(color: Color.red, radius: 10, x: 0, y: 0)
  )
  .frame(width: geometry.size.width, height: geometry.size.height)
Run Code Online (Sandbox Code Playgroud)


Das*_*oga 8

还针对特定视图:

var body: some View {
    Text("SwiftUI is Awesome").padding().background(
        Rectangle()
            .fill(Color.white)
            .cornerRadius(12)
            .shadow(
                color: Color.gray.opacity(0.7),
                radius: 8,
                x: 0,
                y: 0
            )
    )
}
Run Code Online (Sandbox Code Playgroud)

参考这里

结果:

在此输入图像描述