首页 > 解决方案 > 如何使用cornerRadius为SwiftUI中的按钮提供阴影

问题描述

我正在尝试使用以下代码为 Button 提供阴影。

代码:

Button(action: {

            }) {
                Text("SIGN IN")
                    .font(.system(size: 17))
                    .fontWeight(.bold)
                    .foregroundColor(.green)
                    .frame(minWidth: 0, maxWidth: .infinity)
                    .padding()
                    .background(Color.white)
                    .clipped()
                    .overlay(
                        RoundedRectangle(cornerRadius: 25)
                           .stroke(lineWidth: 1)
                           .foregroundColor(.white)
                    )

            }
            .shadow(color: .gray, radius: 2, x: 0, y: 2)

输出:

在此处输入图像描述

在上图中,您可以看到阴影不合适。

我怎样才能实现以下目标?

在此处输入图像描述

标签: iosswiftswiftui

解决方案


我会这样做

注意:最后一个 .padding 并不重要,取决于按钮的放置位置和方式,这里仅用于演示。

按钮

Button(action: {

}) {
    Text("SIGN IN")
        .font(.system(size: 17))
        .fontWeight(.bold)
        .foregroundColor(.green)
        .frame(minWidth: 0, maxWidth: .infinity)
        .padding()
        .background(
            RoundedRectangle(cornerRadius: 25)
                .fill(Color.white)
                .shadow(color: .gray, radius: 2, x: 0, y: 2)
    )
    .padding()
}

推荐阅读